struts-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jo...@apache.org
Subject [03/16] struts-examples git commit: Unify artifact names and use "-" instead of "_"
Date Sun, 14 Jun 2015 10:53:15 GMT
http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/controlheader.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/controlheader.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/controlheader.ftl
deleted file mode 100644
index 4a15058..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/controlheader.ftl
+++ /dev/null
@@ -1,28 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader-core.ftl" />
-    <td
-<#if parameters.align??>
-    align="${parameters.align?html}"<#t/>
-</#if>
-><#t/>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/doubleselect.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/doubleselect.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/doubleselect.ftl
deleted file mode 100644
index f923462..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/doubleselect.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/doubleselect.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /><#nt/>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/file.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/file.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/file.ftl
deleted file mode 100644
index cae4a2e..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/file.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/file.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-close-validate.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-close-validate.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-close-validate.ftl
deleted file mode 100644
index f129156..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-close-validate.ftl
+++ /dev/null
@@ -1,158 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#--
-START SNIPPET: supported-validators
-Only the following validators are supported:
-* required validator
-* requiredstring validator
-* stringlength validator
-* regex validator
-* email validator
-* url validator
-* int validator
-* double validator
-END SNIPPET: supported-validators
--->
-<#if ((parameters.validate!false == true) && (parameters.performValidation!false == true))>
-<script type="text/javascript">
-    function validateForm_${parameters.id?replace('[^a-zA-Z0-9_]', '_', 'r')}() {
-        <#--
-            In case of multiselect fields return only the first value.
-        -->
-        var getFieldValue = function(field) {
-            var type = field.type ? field.type : field[0].type;
-            if (type == 'select-one' || type == 'select-multiple') {
-                return (field.selectedIndex == -1 ? "" : field.options[field.selectedIndex].value);
-            } else if (type == 'checkbox' || type == 'radio') {
-                if (!field.length) {
-                    field = [field];
-                }
-                for (var i = 0; i < field.length; i++) {
-                    if (field[i].checked) {
-                        return field[i].value;
-                    }
-                }
-                return "";
-            }
-            return field.value;
-        }
-        form = document.getElementById("${parameters.id}");
-        clearErrorMessages(form);
-        clearErrorLabels(form);
-
-        var errors = false;
-        var continueValidation = true;
-    <#list parameters.tagNames as tagName>
-        <#list tag.getValidators("${tagName}") as aValidator>
-        // field name: ${aValidator.fieldName}
-        // validator name: ${aValidator.validatorType}
-        if (form.elements['${aValidator.fieldName}']) {
-            field = form.elements['${aValidator.fieldName}'];
-            <#if aValidator.validatorType = "field-visitor">
-                <#assign validator = aValidator.fieldValidator >
-                //visitor validator switched to: ${validator.validatorType}
-            <#else>
-                <#assign validator = aValidator >
-            </#if>
-
-            var error = "${validator.getMessage(action)?js_string}";
-            var fieldValue = getFieldValue(field);
-            
-            <#if validator.validatorType = "required">
-            if (fieldValue == "") {
-                addError(field, error);
-                errors = true;
-                <#if validator.shortCircuit>continueValidation = false;</#if>
-            }
-            <#elseif validator.validatorType = "requiredstring">
-            if (continueValidation && fieldValue != null && (fieldValue == "" || fieldValue.replace(/^\s+|\s+$/g,"").length == 0)) {
-                addError(field, error);
-                errors = true;
-                <#if validator.shortCircuit>continueValidation = false;</#if>
-            }
-            <#elseif validator.validatorType = "stringlength">
-            if (continueValidation && fieldValue != null) {
-                var value = fieldValue;
-                <#if validator.trim>
-                    //trim field value
-                    while (value.substring(0,1) == ' ')
-                        value = value.substring(1, value.length);
-                    while (value.substring(value.length-1, value.length) == ' ')
-                        value = value.substring(0, value.length-1);
-                </#if>
-                if ((${validator.minLength?c} > -1 && value.length < ${validator.minLength?c}) ||
-                    (${validator.maxLength?c} > -1 && value.length > ${validator.maxLength?c})) {
-                    addError(field, error);
-                    errors = true;
-                    <#if validator.shortCircuit>continueValidation = false;</#if>
-                }
-            }
-            <#elseif validator.validatorType = "regex">
-            if (continueValidation && fieldValue != null && !fieldValue.match("${validator.regex?js_string}")) {
-                addError(field, error);
-                errors = true;
-                <#if validator.shortCircuit>continueValidation = false;</#if>
-            }
-            <#elseif validator.validatorType = "email">
-            if (continueValidation && fieldValue != null && fieldValue.length > 0 && fieldValue.match("${validator.regex?js_string}")==null) {
-                addError(field, error);
-                errors = true;
-                <#if validator.shortCircuit>continueValidation = false;</#if>
-            }
-            <#elseif validator.validatorType = "url">
-            if (continueValidation && fieldValue != null && fieldValue.length > 0 && fieldValue.match("/${validator.urlRegex?js_string}/i")==null) {
-                addError(field, error);
-                errors = true;
-                <#if validator.shortCircuit>continueValidation = false;</#if>
-            }
-            <#elseif validator.validatorType = "int" || validator.validatorType = "short">
-            if (continueValidation && fieldValue != null) {
-                if (<#if validator.min??>parseInt(fieldValue) <
-                     ${validator.min?c}<#else>false</#if> ||
-                        <#if validator.max??>parseInt(fieldValue) >
-                           ${validator.max?c}<#else>false</#if>) {
-                    addError(field, error);
-                    errors = true;
-                    <#if validator.shortCircuit>continueValidation = false;</#if>
-                }
-            }
-            <#elseif validator.validatorType = "double">
-            if (continueValidation && fieldValue != null) {
-                var value = parseFloat(fieldValue);
-                if (<#if validator.minInclusive??>value < ${validator.minInclusive?c}<#else>false</#if> ||
-                        <#if validator.maxInclusive??>value > ${validator.maxInclusive?c}<#else>false</#if> ||
-                        <#if validator.minExclusive??>value <= ${validator.minExclusive?c}<#else>false</#if> ||
-                        <#if validator.maxExclusive??>value >= ${validator.maxExclusive?c}<#else>false</#if>) {
-                    addError(field, error);
-                    errors = true;
-                }
-            }
-            </#if>
-        }
-        </#list>
-    </#list>
-
-        return !errors;
-    }
-</script>
-</#if>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-close.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-close.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-close.ftl
deleted file mode 100644
index d783454..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-close.ftl
+++ /dev/null
@@ -1,35 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/control-close.ftl" />
-<#include "/${parameters.templateDir}/simple/form-close.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/form-close-validate.ftl" />
-<#if parameters.focusElement?if_exists != "">
-<script type="text/javascript">
-    StrutsUtils.addOnLoad(function() {
-        var element = document.getElementById("${parameters.focusElement?html}");
-        if(element) {
-            element.focus();
-        }
-    });
-</script>
-</#if>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-validate.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-validate.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-validate.ftl
deleted file mode 100644
index 6597f4e..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/form-validate.ftl
+++ /dev/null
@@ -1,31 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#if parameters.validate?default(false) == true>
-	<script type="text/javascript" src="${base}/struts/xhtml/validation.js"></script>
-	<script type="text/javascript" src="${base}/struts/utils.js"></script>
-	<#if parameters.onsubmit??>
-		${tag.addParameter('onsubmit', "${parameters.onsubmit}; return validateForm_${parameters.id?replace('[^a-zA-Z0-9_]', '_', 'r')}();")}
-	<#else>
-		${tag.addParameter('onsubmit', "return validateForm_${parameters.id?replace('[^a-zA-Z0-9_]', '_', 'r')}();")}
-	</#if>
-</#if>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/form.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/form.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/form.ftl
deleted file mode 100644
index 5a686dd..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/form.ftl
+++ /dev/null
@@ -1,33 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/form-validate.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/form-common.ftl" />
-<#if (parameters.validate?default(false))>
-  onreset="${parameters.onreset?default('clearErrorMessages(this);clearErrorLabels(this);')}"
-<#else>
-  <#if parameters.onreset??>
-  onreset="${parameters.onreset?html}"
-  </#if>
-</#if>
->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/control.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/head.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/head.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/head.ftl
deleted file mode 100644
index e8a8fb8..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/head.ftl
+++ /dev/null
@@ -1,24 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<link rel="stylesheet" href="<@s.url value='/struts/xhtml/styles.css' includeParams='none' encode='false' />" type="text/css"/>
-<#include "/${parameters.templateDir}/simple/head.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/hidden.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/hidden.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/hidden.ftl
deleted file mode 100644
index 92881ab..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/hidden.ftl
+++ /dev/null
@@ -1,27 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<tr style="display:none;">
-  <td colspan="2">
-    <#include "/${parameters.templateDir}/simple/hidden.ftl" />
-  </td>
-</tr>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/inputtransferselect.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/inputtransferselect.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/inputtransferselect.ftl
deleted file mode 100644
index f25a6ab..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/inputtransferselect.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/inputtransferselect.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /><#nt/>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/label.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/label.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/label.ftl
deleted file mode 100644
index 8faf8d6..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/label.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/label.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/optiontransferselect.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/optiontransferselect.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/optiontransferselect.ftl
deleted file mode 100644
index e1cd440..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/optiontransferselect.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/optiontransferselect.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /><#nt/>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/password.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/password.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/password.ftl
deleted file mode 100644
index 202da51..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/password.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/password.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/radiomap.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/radiomap.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/radiomap.ftl
deleted file mode 100644
index 008de45..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/radiomap.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/radiomap.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /><#nt/>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/reset.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/reset.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/reset.ftl
deleted file mode 100644
index 8e6e2b5..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/reset.ftl
+++ /dev/null
@@ -1,31 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<tr>
-    <td colspan="2"><div <#rt/>
-<#if parameters.align??>
-    align="${parameters.align?html}"<#t/>
-</#if>
-><#t/>
-<#include "/${parameters.templateDir}/simple/reset.ftl" />
-</div><#t/>
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/select.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/select.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/select.ftl
deleted file mode 100644
index 9d07046..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/select.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/select.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/styles.css
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/styles.css b/themes_override/src/main/webapp/WEB-INF/template/xhtml/styles.css
deleted file mode 100644
index dd54904..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/styles.css
+++ /dev/null
@@ -1,29 +0,0 @@
-/*
- * $Id$
- *
- * 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.
- */
-
-.wwFormTable {}
-.label {font-style:italic; }
-.errorLabel {font-style:italic; color:red; }
-.errorMessage {font-weight:bold; color:red; }
-.checkboxLabel {}
-.checkboxErrorLabel {color:red; }
-.required {color:red;}
-.tdLabel {text-align:right; vertical-align:top; } 

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/submit-close.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/submit-close.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/submit-close.ftl
deleted file mode 100644
index faa551c..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/submit-close.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/simple/submit-close.ftl" />
-</div><#t/>
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/submit.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/submit.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/submit.ftl
deleted file mode 100644
index 7b82921..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/submit.ftl
+++ /dev/null
@@ -1,29 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<tr>
-    <td colspan="2"><div <#rt/>
-<#if parameters.align??>
-    align="${parameters.align?html}"<#t/>
-</#if>
-><#t/>
-<#include "/${parameters.templateDir}/simple/submit.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/text.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/text.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/text.ftl
deleted file mode 100644
index 53f1647..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/text.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/text.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/textarea.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/textarea.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/textarea.ftl
deleted file mode 100644
index 46f77d9..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/textarea.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/textarea.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" />

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/theme.properties
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/theme.properties b/themes_override/src/main/webapp/WEB-INF/template/xhtml/theme.properties
deleted file mode 100644
index 84dc155..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/theme.properties
+++ /dev/null
@@ -1,21 +0,0 @@
-#
-# $Id$
-#
-# 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.
-#
-parent = simple

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/tooltip.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/tooltip.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/tooltip.ftl
deleted file mode 100644
index 74938a8..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/tooltip.ftl
+++ /dev/null
@@ -1,41 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#if parameters.tooltip??><#t/>
-      <img
-      <#if parameters.tooltipIconPath??><#t/>
-      	src='<@s.url value="${parameters.tooltipIconPath}" includeParams="none" encode="false" />'
-      <#else><#t/>
-      	src='<@s.url value="/struts/tooltip.gif" includeParams="none" encode="false" />'
-      </#if><#t/>
-      <#if parameters.jsTooltipEnabled?default('false') == 'true'>
-          onmouseover="domTT_activate(this, event, 'content', '${parameters.tooltip}'<#t/>
-          <#if parameters.tooltipDelay??><#t/>
-          	<#t/>,'delay', '${parameters.tooltipDelay}'<#t/>
-          </#if><#t/>
-          <#t/>,'styleClass', '${parameters.tooltipCssClass?default("StrutsTTClassic")}'<#t/>
-          <#t/>)" />
-      <#else>
-      	title="${parameters.tooltip?html}"
-      	alt="${parameters.tooltip?html}" />
-     </#if>
-</#if><#t/>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/updownselect.ftl
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/updownselect.ftl b/themes_override/src/main/webapp/WEB-INF/template/xhtml/updownselect.ftl
deleted file mode 100644
index bd575f7..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/updownselect.ftl
+++ /dev/null
@@ -1,25 +0,0 @@
-<#--
-/*
- * $Id$
- *
- * 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.
- */
--->
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlheader.ftl" />
-<#include "/${parameters.templateDir}/simple/updownselect.ftl" />
-<#include "/${parameters.templateDir}/${parameters.expandTheme}/controlfooter.ftl" /><#nt/>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/template/xhtml/validation.js
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/template/xhtml/validation.js b/themes_override/src/main/webapp/WEB-INF/template/xhtml/validation.js
deleted file mode 100644
index e63751b..0000000
--- a/themes_override/src/main/webapp/WEB-INF/template/xhtml/validation.js
+++ /dev/null
@@ -1,139 +0,0 @@
-/*
- * $Id$
- *
- * 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.
- */
-
-function clearErrorMessagesXHTML(form) {
-
-    // get field table
-    var table, i, r;
-    for (i = 0; i < form.childNodes.length; i++) {
-        if (form.childNodes[i].tagName !== undefined && form.childNodes[i].tagName.toLowerCase() === 'table') {
-            table = form.childNodes[i];
-            break;
-        }
-    }
-
-    if (table === null) {
-        return;
-    }
-
-    // clear out any rows with an "errorFor" attribute
-    var rows = table.rows;
-    if (rows === null){
-        return;
-    }
-
-    var rowsToDelete = [];
-    for(i = 0; i < rows.length; i++) {
-        r = rows[i];
-        // allow blank errorFor values on dojo markup
-        if (r.getAttribute("errorFor") !== null) {
-            rowsToDelete.push(r);
-        }
-    }
-
-    // now delete the rows
-    for (i = 0; i < rowsToDelete.length; i++) {
-        r = rowsToDelete[i];
-        table.deleteRow(r.rowIndex);
-        //table.removeChild(rowsToDelete[i]);
-    }
-}
-
-function clearErrorMessages(form) {
-    clearErrorMessagesXHTML(form);
-}
-
-function clearErrorLabelsXHTML(form) {
-    // set all labels back to the normal class
-    var i, elements = form.elements;
-    for (i = 0; i < elements.length; i++) {
-
-        var parentEl = elements[i];
-        // search for the parent table row, abort if the form is reached
-        // the form may contain "non-wrapped" inputs inserted by Dojo
-        while (parentEl.nodeName.toUpperCase() !== "TR" && parentEl.nodeName.toUpperCase() !== "FORM") {
-            parentEl = parentEl.parentNode;
-        }
-        if (parentEl.nodeName.toUpperCase() === "FORM") {
-            parentEl = null;
-        }
-
-         //if labelposition is 'top' the label is on the row above
-        if(parentEl && parentEl.cells) {
-          var labelRow = parentEl.cells.length > 1 ? parentEl : StrutsUtils.previousElement(parentEl, "tr");
-          if (labelRow) {
-              var cells = labelRow.cells;
-              if (cells && cells.length >= 1) {
-                  var label = cells[0].getElementsByTagName("label")[0];
-                  if (label) {
-                      label.setAttribute("class", "label");
-                      label.setAttribute("className", "label"); //ie hack cause ie does not support setAttribute
-                  }
-              }
-          }
-        }
-    }
-
-}
-
-function clearErrorLabels(form) {
-    clearErrorLabelsXHTML(form);
-}
-
-function addErrorXHTML(e, errorText) {
-    try {
-        var row = (e.type ? e : e[0]);
-        while(row.nodeName.toUpperCase() !== "TR") {
-            row = row.parentNode;
-        }
-        var table = row.parentNode;
-        var error = document.createTextNode(errorText);
-        var tr = document.createElement("tr");
-        var td = document.createElement("td");
-        var span = document.createElement("span");
-        td.align = "center";
-        td.valign = "top";
-        td.colSpan = 2;
-        span.setAttribute("class", "errorMessage");
-        span.setAttribute("className", "errorMessage"); //ie hack cause ie does not support setAttribute
-        span.appendChild(error);
-        td.appendChild(span);
-        tr.appendChild(td);
-        tr.setAttribute("errorFor", e.id);
-        table.insertBefore(tr, row);
-
-        // update the label too
-        //if labelposition is 'top' the label is on the row above
-        var labelRow = row.cells.length > 1 ? row : StrutsUtils.previousElement(tr, "tr");
-        var label = labelRow.cells[0].getElementsByTagName("label")[0];
-        if (label) {
-            label.setAttribute("class", "errorLabel");
-            label.setAttribute("className", "errorLabel"); //ie hack cause ie does not support setAttribute
-        }
-    } catch (err) {
-        alert(err);
-    }
-}
-
-function addError(e, errorText) {
-    addErrorXHTML(e, errorText);
-}
-

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/WEB-INF/web.xml b/themes_override/src/main/webapp/WEB-INF/web.xml
deleted file mode 100644
index a5fcf75..0000000
--- a/themes_override/src/main/webapp/WEB-INF/web.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
-<display-name>Themes Struts 2</display-name>
-  <welcome-file-list>
-    <welcome-file>index.jsp</welcome-file>
-  </welcome-file-list>
-  
-  					 
-    <filter>
-        <filter-name>struts2</filter-name>
-        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
-    </filter>
-
-     <filter-mapping>
-        <filter-name>struts2</filter-name>
-        <url-pattern>/*</url-pattern>
-    </filter-mapping>
-    
-</web-app>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/edit.jsp
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/edit.jsp b/themes_override/src/main/webapp/edit.jsp
deleted file mode 100644
index bb1ef76..0000000
--- a/themes_override/src/main/webapp/edit.jsp
+++ /dev/null
@@ -1,29 +0,0 @@
-<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
-    pageEncoding="ISO-8859-1"%>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<s:head />
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Struts 2 Form Tags - Edit Person</title>
-
-</head>
-<body>
-<h1>Update Information</h1>
-
-<p>Use the form below to edit your information.</p>
-
-<s:form action="save" method="post">
-<s:textfield key="personBean.firstName" />
-<s:textfield key="personBean.lastName" />
-<s:select key="personBean.sport" list="sports" />
-<s:radio key="personBean.gender" list="genders" />
-<s:select key="personBean.residency" list="states" listKey="stateAbbr" listValue="stateName" />
-<s:checkbox key="personBean.over21" />
-<s:checkboxlist key="personBean.carModels" list="carModelsAvailable" />
-<s:submit key="submit" />
-</s:form>
-
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/index.jsp
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/index.jsp b/themes_override/src/main/webapp/index.jsp
deleted file mode 100644
index 88209d8..0000000
--- a/themes_override/src/main/webapp/index.jsp
+++ /dev/null
@@ -1,16 +0,0 @@
-<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
-    pageEncoding="ISO-8859-1"%>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
-<html>
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
-<title>Struts 2 Form Tags - Welcome</title>
-</head>
-<body>
-<h1>Welcome To Struts 2!</h1>
-
-<p><a href='<s:url action="edit" />' >Edit your information</a></p>
-
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/themes_override/src/main/webapp/thankyou.jsp
----------------------------------------------------------------------
diff --git a/themes_override/src/main/webapp/thankyou.jsp b/themes_override/src/main/webapp/thankyou.jsp
deleted file mode 100644
index 7c268ef..0000000
--- a/themes_override/src/main/webapp/thankyou.jsp
+++ /dev/null
@@ -1,21 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
-    pageEncoding="ISO-8859-1"%>
-<%@ taglib prefix="s" uri="/struts-tags" %>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Update Successful</title>
-</head>
-<body>
-
-<h1>Updated Information</h1>
-
-
-<p>Your information: <s:property value="personBean" /> </p>
-
-<p><a href="<s:url action='index' />" >Return to home page</a>.</p>
-
-</body>
-</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/README.txt
----------------------------------------------------------------------
diff --git a/unit-testing/README.txt b/unit-testing/README.txt
new file mode 100644
index 0000000..61377ee
--- /dev/null
+++ b/unit-testing/README.txt
@@ -0,0 +1,18 @@
+This is the example project referred to in the
+Struts 2 documentation, Unit Testing tutorial.
+See:  http://struts.apache.org.
+
+To build the application's war file run mvn clean package
+from the project's root folder.
+
+As part of packaging the war file, Maven will run the unit test.
+
+The war file is created in the target sub-folder.
+
+Copy the war file to your Servlet container (e.g. Tomcat, GlassFish) and 
+then startup the Servlet container.
+
+In a web browser go to:  http://localhost:8080/unit-testing/index.action.
+
+You should see a web page with Welcome to Struts 2!
+

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/pom.xml
----------------------------------------------------------------------
diff --git a/unit-testing/pom.xml b/unit-testing/pom.xml
new file mode 100644
index 0000000..38ceeee
--- /dev/null
+++ b/unit-testing/pom.xml
@@ -0,0 +1,45 @@
+<?xml version="1.0"?>
+<project
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
+	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>struts.apache.org</groupId>
+		<artifactId>struts2examples</artifactId>
+		<version>1.0.0</version>
+	</parent>
+
+	<artifactId>unit-testing</artifactId>
+
+	<name>Unit Testing</name>
+
+	<build>
+		<finalName>unit-testing</finalName>
+	</build>
+
+	<packaging>war</packaging>
+
+	<dependencies>
+		<dependency>
+			<groupId>org.apache.struts</groupId>
+			<artifactId>struts2-junit-plugin</artifactId>
+			<version>${struts2.version}</version>
+			<type>jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>servlet-api</artifactId>
+			<version>2.4</version>
+			<type>jar</type>
+			<scope>test</scope>
+		</dependency>
+		<dependency>
+			<groupId>javax.servlet</groupId>
+			<artifactId>jsp-api</artifactId>
+			<version>2.0</version>
+			<type>jar</type>
+			<scope>test</scope>
+		</dependency>
+	</dependencies>
+</project>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/main/java/org/apache/struts/register/action/Register.java
----------------------------------------------------------------------
diff --git a/unit-testing/src/main/java/org/apache/struts/register/action/Register.java b/unit-testing/src/main/java/org/apache/struts/register/action/Register.java
new file mode 100644
index 0000000..cbdb5e9
--- /dev/null
+++ b/unit-testing/src/main/java/org/apache/struts/register/action/Register.java
@@ -0,0 +1,64 @@
+package org.apache.struts.register.action;
+
+import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts.register.model.Person;
+
+/**
+ * Acts as a controller to handle actions
+ * related to registering a user.
+ * @author bruce phillips
+ *
+ */
+public class Register extends ActionSupport {
+	
+	private static final long serialVersionUID = 1L;
+	
+	private Person personBean;
+
+	
+	public String execute() throws Exception {
+		
+		//call Service class to store personBean's state in database
+		
+		return SUCCESS;
+		
+	}
+	
+	public void validate(){
+		
+		if ( personBean.getFirstName() == null || personBean.getFirstName().length() == 0 ){	
+
+			addFieldError( "personBean.firstName", "First name is required." );
+			
+		}
+		
+				
+		if ( personBean.getEmail() == null || personBean.getEmail().length() == 0 ){	
+
+			addFieldError( "personBean.email", "Email is required." );
+			
+		}
+		
+		if ( personBean.getAge() < 18 ){	
+
+			addFieldError( "personBean.age", "Age is required and must be 18 or older" );
+			
+		}
+		
+		
+	}
+
+	
+	public Person getPersonBean() {
+		
+		return personBean;
+		
+	}
+	
+	public void setPersonBean(Person person) {
+		
+		personBean = person;
+		
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/main/java/org/apache/struts/register/model/Person.java
----------------------------------------------------------------------
diff --git a/unit-testing/src/main/java/org/apache/struts/register/model/Person.java b/unit-testing/src/main/java/org/apache/struts/register/model/Person.java
new file mode 100644
index 0000000..3020bbb
--- /dev/null
+++ b/unit-testing/src/main/java/org/apache/struts/register/model/Person.java
@@ -0,0 +1,62 @@
+package org.apache.struts.register.model;
+
+
+/**
+ * Models a Person who registers.
+ * @author bruce phillips
+ *
+ */
+public class Person
+{
+    private String firstName;
+    private String lastName;
+    private String email;
+    private int age;
+
+    public String getFirstName()
+    {
+        return firstName;
+    }
+
+    public void setFirstName(String firstName)
+    {
+        this.firstName = firstName;
+    }
+
+    public String getLastName()
+    {
+        return lastName;
+    }
+
+    public void setLastName(String lastName)
+    {
+        this.lastName = lastName;
+    }
+
+    public String getEmail()
+    {
+        return email;
+    }
+
+    public void setEmail(String email)
+    {
+        this.email = email;
+    }
+
+    public int getAge()
+    {
+        return age;
+    }
+
+    public void setAge( int age)
+    {
+        this.age = age;
+    }
+
+
+    public String toString()
+    {
+        return "First Name: " + getFirstName() + " Last Name:  " + getLastName() + 
+        " Email:      " + getEmail() + " Age:      " + getAge() ;
+    }
+}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/main/resources/log4j.dtd
----------------------------------------------------------------------
diff --git a/unit-testing/src/main/resources/log4j.dtd b/unit-testing/src/main/resources/log4j.dtd
new file mode 100644
index 0000000..1aabd96
--- /dev/null
+++ b/unit-testing/src/main/resources/log4j.dtd
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!--
+ 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.
+-->
+
+<!-- Authors: Chris Taylor, Ceki Gulcu. -->
+
+<!-- Version: 1.2 -->
+
+<!-- A configuration element consists of optional renderer
+elements,appender elements, categories and an optional root
+element. -->
+
+<!ELEMENT log4j:configuration (renderer*, appender*,plugin*, (category|logger)*,root?,
+                               (categoryFactory|loggerFactory)?)>
+
+<!-- The "threshold" attribute takes a level value below which -->
+<!-- all logging statements are disabled. -->
+
+<!-- Setting the "debug" enable the printing of internal log4j logging   -->
+<!-- statements.                                                         -->
+
+<!-- By default, debug attribute is "null", meaning that we not do touch -->
+<!-- internal log4j logging settings. The "null" value for the threshold -->
+<!-- attribute can be misleading. The threshold field of a repository	 -->
+<!-- cannot be set to null. The "null" value for the threshold attribute -->
+<!-- simply means don't touch the threshold field, the threshold field   --> 
+<!-- keeps its old value.                                                -->
+     
+<!ATTLIST log4j:configuration
+  xmlns:log4j              CDATA #FIXED "http://jakarta.apache.org/log4j/" 
+  threshold                (all|trace|debug|info|warn|error|fatal|off|null) "null"
+  debug                    (true|false|null)  "null"
+  reset                    (true|false) "false"
+>
+
+<!-- renderer elements allow the user to customize the conversion of  -->
+<!-- message objects to String.                                       -->
+
+<!ELEMENT renderer EMPTY>
+<!ATTLIST renderer
+  renderedClass  CDATA #REQUIRED
+  renderingClass CDATA #REQUIRED
+>
+
+<!-- Appenders must have a name and a class. -->
+<!-- Appenders may contain an error handler, a layout, optional parameters -->
+<!-- and filters. They may also reference (or include) other appenders. -->
+<!ELEMENT appender (errorHandler?, param*,
+      rollingPolicy?, triggeringPolicy?, connectionSource?,
+      layout?, filter*, appender-ref*)>
+<!ATTLIST appender
+  name 		CDATA 	#REQUIRED
+  class 	CDATA	#REQUIRED
+>
+
+<!ELEMENT layout (param*)>
+<!ATTLIST layout
+  class		CDATA	#REQUIRED
+>
+
+<!ELEMENT filter (param*)>
+<!ATTLIST filter
+  class		CDATA	#REQUIRED
+>
+
+<!-- ErrorHandlers can be of any class. They can admit any number of -->
+<!-- parameters. -->
+
+<!ELEMENT errorHandler (param*, root-ref?, logger-ref*,  appender-ref?)> 
+<!ATTLIST errorHandler
+   class        CDATA   #REQUIRED 
+>
+
+<!ELEMENT root-ref EMPTY>
+
+<!ELEMENT logger-ref EMPTY>
+<!ATTLIST logger-ref
+  ref CDATA #REQUIRED
+>
+
+<!ELEMENT param EMPTY>
+<!ATTLIST param
+  name		CDATA   #REQUIRED
+  value		CDATA	#REQUIRED
+>
+
+
+<!-- The priority class is org.apache.log4j.Level by default -->
+<!ELEMENT priority (param*)>
+<!ATTLIST priority
+  class   CDATA	#IMPLIED
+  value	  CDATA #REQUIRED
+>
+
+<!-- The level class is org.apache.log4j.Level by default -->
+<!ELEMENT level (param*)>
+<!ATTLIST level
+  class   CDATA	#IMPLIED
+  value	  CDATA #REQUIRED
+>
+
+
+<!-- If no level element is specified, then the configurator MUST not -->
+<!-- touch the level of the named category. -->
+<!ELEMENT category (param*,(priority|level)?,appender-ref*)>
+<!ATTLIST category
+  class         CDATA   #IMPLIED
+  name		CDATA	#REQUIRED
+  additivity	(true|false) "true"  
+>
+
+<!-- If no level element is specified, then the configurator MUST not -->
+<!-- touch the level of the named logger. -->
+<!ELEMENT logger (level?,appender-ref*)>
+<!ATTLIST logger
+  name		CDATA	#REQUIRED
+  additivity	(true|false) "true"  
+>
+
+
+<!ELEMENT categoryFactory (param*)>
+<!ATTLIST categoryFactory 
+   class        CDATA #REQUIRED>
+
+<!ELEMENT loggerFactory (param*)>
+<!ATTLIST loggerFactory
+   class        CDATA #REQUIRED>
+
+<!ELEMENT appender-ref EMPTY>
+<!ATTLIST appender-ref
+  ref CDATA #REQUIRED
+>
+
+<!-- plugins must have a name and class and can have optional parameters -->
+<!ELEMENT plugin (param*, connectionSource?)>
+<!ATTLIST plugin
+  name 		CDATA 	   #REQUIRED
+  class 	CDATA  #REQUIRED
+>
+
+<!ELEMENT connectionSource (dataSource?, param*)>
+<!ATTLIST connectionSource
+  class        CDATA  #REQUIRED
+>
+
+<!ELEMENT dataSource (param*)>
+<!ATTLIST dataSource
+  class        CDATA  #REQUIRED
+>
+
+<!ELEMENT triggeringPolicy ((param|filter)*)>
+<!ATTLIST triggeringPolicy
+  name 		CDATA  #IMPLIED
+  class 	CDATA  #REQUIRED
+>
+
+<!ELEMENT rollingPolicy (param*)>
+<!ATTLIST rollingPolicy
+  name 		CDATA  #IMPLIED
+  class 	CDATA  #REQUIRED
+>
+
+
+<!-- If no priority element is specified, then the configurator MUST not -->
+<!-- touch the priority of root. -->
+<!-- The root category always exists and cannot be subclassed. -->
+<!ELEMENT root (param*, (priority|level)?, appender-ref*)>
+
+
+<!-- ==================================================================== -->
+<!--                       A logging event                                -->
+<!-- ==================================================================== -->
+<!ELEMENT log4j:eventSet (log4j:event*)>
+<!ATTLIST log4j:eventSet
+  xmlns:log4j             CDATA #FIXED "http://jakarta.apache.org/log4j/" 
+  version                (1.1|1.2) "1.2" 
+  includesLocationInfo   (true|false) "true"
+>
+
+
+
+<!ELEMENT log4j:event (log4j:message, log4j:NDC?, log4j:throwable?, 
+                       log4j:locationInfo?, log4j:properties?) >
+
+<!-- The timestamp format is application dependent. -->
+<!ATTLIST log4j:event
+    logger     CDATA #REQUIRED
+    level      CDATA #REQUIRED
+    thread     CDATA #REQUIRED
+    timestamp  CDATA #REQUIRED
+    time       CDATA #IMPLIED
+>
+
+<!ELEMENT log4j:message (#PCDATA)>
+<!ELEMENT log4j:NDC (#PCDATA)>
+
+<!ELEMENT log4j:throwable (#PCDATA)>
+
+<!ELEMENT log4j:locationInfo EMPTY>
+<!ATTLIST log4j:locationInfo
+  class  CDATA	#REQUIRED
+  method CDATA	#REQUIRED
+  file   CDATA	#REQUIRED
+  line   CDATA	#REQUIRED
+>
+
+<!ELEMENT log4j:properties (log4j:data*)>
+
+<!ELEMENT log4j:data EMPTY>
+<!ATTLIST log4j:data
+  name   CDATA	#REQUIRED
+  value  CDATA	#REQUIRED
+>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/main/resources/log4j.xml
----------------------------------------------------------------------
diff --git a/unit-testing/src/main/resources/log4j.xml b/unit-testing/src/main/resources/log4j.xml
new file mode 100644
index 0000000..2100cb2
--- /dev/null
+++ b/unit-testing/src/main/resources/log4j.xml
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE log4j:configuration PUBLIC "-//log4j/log4j Configuration//EN" "log4j.dtd">
+
+<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
+    
+    <appender name="STDOUT" class="org.apache.log4j.ConsoleAppender">
+       <layout class="org.apache.log4j.PatternLayout"> 
+          <param name="ConversionPattern" value="%d %-5p %c.%M:%L - %m%n"/> 
+       </layout> 
+    </appender>
+ 
+    <!-- specify the logging level for loggers from other libraries -->
+    <logger name="com.opensymphony">
+    	<level value="DEBUG" />
+    </logger>
+
+    <logger name="org.apache.struts2">
+    	 <level value="DEBUG" />
+    </logger>
+  
+   <!-- for all other loggers log only debug and above log messages -->
+     <root>
+        <priority value="INFO"/> 
+        <appender-ref ref="STDOUT" /> 
+     </root> 
+    
+</log4j:configuration> 
+

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/main/resources/struts.xml
----------------------------------------------------------------------
diff --git a/unit-testing/src/main/resources/struts.xml b/unit-testing/src/main/resources/struts.xml
new file mode 100644
index 0000000..21cc563
--- /dev/null
+++ b/unit-testing/src/main/resources/struts.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE struts PUBLIC
+    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
+    "http://struts.apache.org/dtds/struts-2.0.dtd">
+
+<struts>
+
+	<constant name="struts.devMode" value="true" />
+
+	<package name="basicstruts2" extends="struts-default">
+
+        <!-- If no class attribute is specified the framework will assume success and 
+        render the result index.jsp -->
+        <!-- If no name value for the result node is specified the success value is the default -->
+		<action name="index">
+			<result>/index.jsp</result>
+		</action>
+
+		
+	  <action name="register" class="org.apache.struts.register.action.Register" method="execute">
+		<result name="success">/thankyou.jsp</result>
+		<result name="input">/register.jsp</result>
+	  </action>
+
+	</package>
+
+</struts>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/main/webapp/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/unit-testing/src/main/webapp/META-INF/MANIFEST.MF b/unit-testing/src/main/webapp/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..254272e
--- /dev/null
+++ b/unit-testing/src/main/webapp/META-INF/MANIFEST.MF
@@ -0,0 +1,3 @@
+Manifest-Version: 1.0
+Class-Path: 
+

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/unit-testing/src/main/webapp/WEB-INF/web.xml b/unit-testing/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..794e993
--- /dev/null
+++ b/unit-testing/src/main/webapp/WEB-INF/web.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
+<display-name>Struts 2 Unit Testing</display-name>
+  <welcome-file-list>
+    <welcome-file>index.jsp</welcome-file>
+  </welcome-file-list>
+  
+  					 
+    <filter>
+        <filter-name>struts2</filter-name>
+        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
+    </filter>
+
+     <filter-mapping>
+        <filter-name>struts2</filter-name>
+        <url-pattern>/*</url-pattern>
+    </filter-mapping>
+    
+</web-app>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/main/webapp/index.jsp
----------------------------------------------------------------------
diff --git a/unit-testing/src/main/webapp/index.jsp b/unit-testing/src/main/webapp/index.jsp
new file mode 100644
index 0000000..48d3fc5
--- /dev/null
+++ b/unit-testing/src/main/webapp/index.jsp
@@ -0,0 +1,17 @@
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+    pageEncoding="ISO-8859-1"%>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<title>Basic Struts 2 Application - Welcome</title>
+</head>
+<body>
+<h1>Welcome To Struts 2!</h1>
+
+
+
+<p><a href="register.jsp">Please register</a> for our prize drawing.</p>
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/main/webapp/register.jsp
----------------------------------------------------------------------
diff --git a/unit-testing/src/main/webapp/register.jsp b/unit-testing/src/main/webapp/register.jsp
new file mode 100644
index 0000000..a4acb15
--- /dev/null
+++ b/unit-testing/src/main/webapp/register.jsp
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+    pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Register</title>
+<s:head />
+</head>
+<body>
+<h3>Register for a prize by completing this form.</h3>
+
+<s:form action="register">
+
+ 	  <s:textfield name="personBean.firstName" label="First name" />
+ 	  <s:textfield  name="personBean.lastName" label="Last name" />
+ 	  <s:textfield name="personBean.email"  label ="Email"/>  
+ 	  <s:textfield name="personBean.age"  label="Age"  />
+ 	  
+   	  <s:submit/>
+   	  
+</s:form>	
+ 
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/main/webapp/thankyou.jsp
----------------------------------------------------------------------
diff --git a/unit-testing/src/main/webapp/thankyou.jsp b/unit-testing/src/main/webapp/thankyou.jsp
new file mode 100644
index 0000000..3c845bc
--- /dev/null
+++ b/unit-testing/src/main/webapp/thankyou.jsp
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="ISO-8859-1" ?>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
+    pageEncoding="ISO-8859-1"%>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+<title>Registration Successful</title>
+</head>
+<body>
+<h3>Thank you for registering for a prize.</h3>
+
+<p>Your registration information: <s:property value="personBean" /> </p>
+
+<p><a href="<s:url action='index' />" >Return to home page</a>.</p>
+
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit-testing/src/test/java/org/apache/struts/register/action/RegisterTest.java
----------------------------------------------------------------------
diff --git a/unit-testing/src/test/java/org/apache/struts/register/action/RegisterTest.java b/unit-testing/src/test/java/org/apache/struts/register/action/RegisterTest.java
new file mode 100644
index 0000000..ae94936
--- /dev/null
+++ b/unit-testing/src/test/java/org/apache/struts/register/action/RegisterTest.java
@@ -0,0 +1,80 @@
+package org.apache.struts.register.action;
+
+
+import com.opensymphony.xwork2.ActionProxy;
+import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts2.StrutsTestCase;
+import org.junit.Test;
+
+public class RegisterTest extends StrutsTestCase {
+
+	@Test
+	public void testExecuteValidationPasses() throws Exception {
+		
+		request.setParameter("personBean.firstName", "Bruce");
+		
+		request.setParameter("personBean.lastName", "Phillips");
+		
+		request.setParameter("personBean.email", "bphillips@ku.edu");
+		
+		request.setParameter("personBean.age", "19");
+			
+		ActionProxy actionProxy = getActionProxy("/register.action") ;
+		
+		Register action = (Register) actionProxy.getAction();
+		
+		assertNotNull("The action is null but should not be.", action);
+
+		String result = actionProxy.execute();
+		
+		assertEquals("The execute method did not return " + ActionSupport.SUCCESS + " but should have.", ActionSupport.SUCCESS, result);
+
+	}
+	
+	@Test
+	public void testExecuteValidationFailsMissingFirstName() throws Exception {
+		
+		request.setParameter("personBean.firstName", "Bruce");
+		
+		request.setParameter("personBean.lastName", "Phillips");
+		
+		request.setParameter("personBean.email", "bphillips@ku.edu");
+		
+		request.setParameter("personBean.age", "17");
+			
+		ActionProxy actionProxy = getActionProxy("/register.action") ;
+		
+		Register action = (Register) actionProxy.getAction();
+		
+		assertNotNull("The action is null but should not be.", action);
+
+		String result = actionProxy.execute();
+		
+		assertEquals("The execute method did not return " + ActionSupport.INPUT + " but should have.", ActionSupport.INPUT, result);
+
+	}
+	
+	
+	@Test
+	public void testExecuteValidationFailsAgeToYoung() throws Exception {
+		
+		
+		request.setParameter("personBean.lastName", "Phillips");
+		
+		request.setParameter("personBean.email", "bphillips@ku.edu");
+		
+		request.setParameter("personBean.age", "19");
+			
+		ActionProxy actionProxy = getActionProxy("/register.action") ;
+		
+		Register action = (Register) actionProxy.getAction();
+		
+		assertNotNull("The action is null but should not be.", action);
+
+		String result = actionProxy.execute();
+		
+		assertEquals("The execute method did not return " + ActionSupport.INPUT + " but should have.", ActionSupport.INPUT, result);
+
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit_testing/README.txt
----------------------------------------------------------------------
diff --git a/unit_testing/README.txt b/unit_testing/README.txt
deleted file mode 100644
index 73a9989..0000000
--- a/unit_testing/README.txt
+++ /dev/null
@@ -1,18 +0,0 @@
-This is the example project referred to in the
-Struts 2 documentation, Unit Testing tutorial.
-See:  http://struts.apache.org.
-
-To build the application's war file run mvn clean package
-from the project's root folder.
-
-As part of packaging the war file, Maven will run the unit test.
-
-The war file is created in the target sub-folder.
-
-Copy the war file to your Servlet container (e.g. Tomcat, GlassFish) and 
-then startup the Servlet container.
-
-In a web browser go to:  http://localhost:8080/unit_testing/index.action.
-
-You should see a web page with Welcome to Struts 2!
-

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit_testing/pom.xml
----------------------------------------------------------------------
diff --git a/unit_testing/pom.xml b/unit_testing/pom.xml
deleted file mode 100644
index 624d0ee..0000000
--- a/unit_testing/pom.xml
+++ /dev/null
@@ -1,45 +0,0 @@
-<?xml version="1.0"?>
-<project
-	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
-	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
-	<modelVersion>4.0.0</modelVersion>
-	<parent>
-		<groupId>struts.apache.org</groupId>
-		<artifactId>struts2examples</artifactId>
-		<version>1.0.0</version>
-	</parent>
-
-	<artifactId>unit_testing</artifactId>
-
-	<name>Unit Testing</name>
-
-	<build>
-		<finalName>unit_testing</finalName>
-	</build>
-
-	<packaging>war</packaging>
-
-	<dependencies>
-		<dependency>
-			<groupId>org.apache.struts</groupId>
-			<artifactId>struts2-junit-plugin</artifactId>
-			<version>${struts2.version}</version>
-			<type>jar</type>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>servlet-api</artifactId>
-			<version>2.4</version>
-			<type>jar</type>
-			<scope>test</scope>
-		</dependency>
-		<dependency>
-			<groupId>javax.servlet</groupId>
-			<artifactId>jsp-api</artifactId>
-			<version>2.0</version>
-			<type>jar</type>
-			<scope>test</scope>
-		</dependency>
-	</dependencies>
-</project>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit_testing/src/main/java/org/apache/struts/register/action/Register.java
----------------------------------------------------------------------
diff --git a/unit_testing/src/main/java/org/apache/struts/register/action/Register.java b/unit_testing/src/main/java/org/apache/struts/register/action/Register.java
deleted file mode 100644
index 3a7f662..0000000
--- a/unit_testing/src/main/java/org/apache/struts/register/action/Register.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.apache.struts.register.action;
-
-import org.apache.struts.register.model.Person;
-
-import com.opensymphony.xwork2.ActionSupport;
-
-/**
- * Acts as a controller to handle actions
- * related to registering a user.
- * @author bruce phillips
- *
- */
-public class Register extends ActionSupport {
-	
-	private static final long serialVersionUID = 1L;
-	
-	private Person personBean;
-
-	
-	public String execute() throws Exception {
-		
-		//call Service class to store personBean's state in database
-		
-		return SUCCESS;
-		
-	}
-	
-	public void validate(){
-		
-		if ( personBean.getFirstName() == null || personBean.getFirstName().length() == 0 ){	
-
-			addFieldError( "personBean.firstName", "First name is required." );
-			
-		}
-		
-				
-		if ( personBean.getEmail() == null || personBean.getEmail().length() == 0 ){	
-
-			addFieldError( "personBean.email", "Email is required." );
-			
-		}
-		
-		if ( personBean.getAge() < 18 ){	
-
-			addFieldError( "personBean.age", "Age is required and must be 18 or older" );
-			
-		}
-		
-		
-	}
-
-	
-	public Person getPersonBean() {
-		
-		return personBean;
-		
-	}
-	
-	public void setPersonBean(Person person) {
-		
-		personBean = person;
-		
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/unit_testing/src/main/java/org/apache/struts/register/model/Person.java
----------------------------------------------------------------------
diff --git a/unit_testing/src/main/java/org/apache/struts/register/model/Person.java b/unit_testing/src/main/java/org/apache/struts/register/model/Person.java
deleted file mode 100644
index 3020bbb..0000000
--- a/unit_testing/src/main/java/org/apache/struts/register/model/Person.java
+++ /dev/null
@@ -1,62 +0,0 @@
-package org.apache.struts.register.model;
-
-
-/**
- * Models a Person who registers.
- * @author bruce phillips
- *
- */
-public class Person
-{
-    private String firstName;
-    private String lastName;
-    private String email;
-    private int age;
-
-    public String getFirstName()
-    {
-        return firstName;
-    }
-
-    public void setFirstName(String firstName)
-    {
-        this.firstName = firstName;
-    }
-
-    public String getLastName()
-    {
-        return lastName;
-    }
-
-    public void setLastName(String lastName)
-    {
-        this.lastName = lastName;
-    }
-
-    public String getEmail()
-    {
-        return email;
-    }
-
-    public void setEmail(String email)
-    {
-        this.email = email;
-    }
-
-    public int getAge()
-    {
-        return age;
-    }
-
-    public void setAge( int age)
-    {
-        this.age = age;
-    }
-
-
-    public String toString()
-    {
-        return "First Name: " + getFirstName() + " Last Name:  " + getLastName() + 
-        " Email:      " + getEmail() + " Age:      " + getAge() ;
-    }
-}


Mime
View raw message