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

[14/16] struts-examples git commit: Unify artifact names and use "-" instead of "_"

Unify artifact names and use "-" instead of "_"


Project: http://git-wip-us.apache.org/repos/asf/struts-examples/repo
Commit: http://git-wip-us.apache.org/repos/asf/struts-examples/commit/433ea016
Tree: http://git-wip-us.apache.org/repos/asf/struts-examples/tree/433ea016
Diff: http://git-wip-us.apache.org/repos/asf/struts-examples/diff/433ea016

Branch: refs/heads/master
Commit: 433ea016258c4928b214ad3d99933abb9df211bb
Parents: 33bf8f2
Author: Johannes Geppert <jo...@apache.org>
Authored: Sun Jun 14 12:38:45 2015 +0200
Committer: Johannes Geppert <jo...@apache.org>
Committed: Sun Jun 14 12:38:46 2015 +0200

----------------------------------------------------------------------
 blank/pom.xml                                   |   7 -
 exception-handling/README.txt                   |  16 +
 exception-handling/pom.xml                      |  23 ++
 .../helloworld/action/HelloWorldAction.java     |  79 +++++
 .../struts/helloworld/model/MessageStore.java   |  31 ++
 .../apache/struts/register/action/Register.java |  60 ++++
 .../exceptions/SecurityBreachException.java     |  19 ++
 .../apache/struts/register/model/Person.java    |  62 ++++
 exception-handling/src/main/resources/log4j.dtd | 227 ++++++++++++++
 exception-handling/src/main/resources/log4j.xml |  28 ++
 .../src/main/resources/struts.xml               |  78 +++++
 .../src/main/webapp/HelloWorld.jsp              |  16 +
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 .../src/main/webapp/WEB-INF/web.xml             |  19 ++
 exception-handling/src/main/webapp/error.jsp    |  24 ++
 exception-handling/src/main/webapp/index.jsp    |  39 +++
 exception-handling/src/main/webapp/login.jsp    |  17 ++
 exception-handling/src/main/webapp/register.jsp |  26 ++
 .../src/main/webapp/securityerror.jsp           |  24 ++
 exception-handling/src/main/webapp/thankyou.jsp |  19 ++
 exception_handling/README.txt                   |  16 -
 exception_handling/pom.xml                      |  23 --
 .../helloworld/action/HelloWorldAction.java     |  80 -----
 .../struts/helloworld/model/MessageStore.java   |  31 --
 .../apache/struts/register/action/Register.java |  61 ----
 .../exceptions/SecurityBreachException.java     |  19 --
 .../apache/struts/register/model/Person.java    |  62 ----
 exception_handling/src/main/resources/log4j.dtd | 227 --------------
 exception_handling/src/main/resources/log4j.xml |  28 --
 .../src/main/resources/struts.xml               |  78 -----
 .../src/main/webapp/HelloWorld.jsp              |  16 -
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 .../src/main/webapp/WEB-INF/web.xml             |  19 --
 exception_handling/src/main/webapp/error.jsp    |  24 --
 exception_handling/src/main/webapp/index.jsp    |  39 ---
 exception_handling/src/main/webapp/login.jsp    |  17 --
 exception_handling/src/main/webapp/register.jsp |  26 --
 .../src/main/webapp/securityerror.jsp           |  24 --
 exception_handling/src/main/webapp/thankyou.jsp |  19 --
 exclude-parameters/README.txt                   |  19 ++
 exclude-parameters/pom.xml                      |  24 ++
 .../apache/struts/edit/action/EditAction.java   |  95 ++++++
 .../org/apache/struts/edit/model/Person.java    | 121 ++++++++
 .../org/apache/struts/edit/model/State.java     |  39 +++
 .../struts/edit/service/CarModelsService.java   |  18 ++
 .../edit/service/CarModelsServiceHardCoded.java |  22 ++
 .../apache/struts/edit/service/EditService.java |  12 +
 .../edit/service/EditServiceInMemory.java       |  60 ++++
 .../src/main/resources/log4j2.xml               |  16 +
 .../edit/action/EditAction-validation.xml       |  35 +++
 .../struts/edit/action/EditAction.properties    |  10 +
 .../src/main/resources/struts.xml               |  42 +++
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 .../src/main/webapp/WEB-INF/web.xml             |  19 ++
 exclude-parameters/src/main/webapp/edit.jsp     |  30 ++
 exclude-parameters/src/main/webapp/index.jsp    |  16 +
 exclude-parameters/src/main/webapp/thankyou.jsp |  21 ++
 exclude_parameters/README.txt                   |  19 --
 exclude_parameters/pom.xml                      |  24 --
 .../apache/struts/edit/action/EditAction.java   |  95 ------
 .../org/apache/struts/edit/model/Person.java    | 121 --------
 .../org/apache/struts/edit/model/State.java     |  39 ---
 .../struts/edit/service/CarModelsService.java   |  18 --
 .../edit/service/CarModelsServiceHardCoded.java |  22 --
 .../apache/struts/edit/service/EditService.java |  12 -
 .../edit/service/EditServiceInMemory.java       |  60 ----
 .../src/main/resources/log4j2.xml               |  16 -
 .../edit/action/EditAction-validation.xml       |  35 ---
 .../struts/edit/action/EditAction.properties    |  10 -
 .../src/main/resources/struts.xml               |  42 ---
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 .../src/main/webapp/WEB-INF/web.xml             |  19 --
 exclude_parameters/src/main/webapp/edit.jsp     |  30 --
 exclude_parameters/src/main/webapp/index.jsp    |  16 -
 exclude_parameters/src/main/webapp/thankyou.jsp |  21 --
 form-processing/README.txt                      |  16 +
 form-processing/pom.xml                         |  22 ++
 .../helloworld/action/HelloWorldAction.java     |  79 +++++
 .../struts/helloworld/model/MessageStore.java   |  31 ++
 .../apache/struts/register/action/Register.java |  39 +++
 .../apache/struts/register/model/Person.java    |  62 ++++
 form-processing/src/main/resources/log4j.dtd    | 227 ++++++++++++++
 form-processing/src/main/resources/log4j.xml    |  28 ++
 form-processing/src/main/resources/struts.xml   |  31 ++
 form-processing/src/main/webapp/HelloWorld.jsp  |  16 +
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 form-processing/src/main/webapp/WEB-INF/web.xml |  19 ++
 form-processing/src/main/webapp/index.jsp       |  30 ++
 form-processing/src/main/webapp/register.jsp    |  26 ++
 form-processing/src/main/webapp/thankyou.jsp    |  19 ++
 form-tags/README.txt                            |  16 +
 form-tags/pom.xml                               |  24 ++
 .../apache/struts/edit/action/EditAction.java   |  95 ++++++
 .../org/apache/struts/edit/model/Person.java    |  96 ++++++
 .../org/apache/struts/edit/model/State.java     |  39 +++
 .../apache/struts/edit/service/EditService.java |  12 +
 .../edit/service/EditServiceInMemory.java       |  51 ++++
 form-tags/src/main/resources/log4j.dtd          | 227 ++++++++++++++
 form-tags/src/main/resources/log4j.xml          |  28 ++
 .../struts/edit/action/EditAction.properties    |   8 +
 form-tags/src/main/resources/struts.xml         |  29 ++
 form-tags/src/main/webapp/META-INF/MANIFEST.MF  |   3 +
 form-tags/src/main/webapp/WEB-INF/web.xml       |  19 ++
 form-tags/src/main/webapp/edit.jsp              |  28 ++
 form-tags/src/main/webapp/index.jsp             |  16 +
 form-tags/src/main/webapp/thankyou.jsp          |  21 ++
 form-validation/README.txt                      |  16 +
 form-validation/pom.xml                         |  24 ++
 .../helloworld/action/HelloWorldAction.java     |  79 +++++
 .../struts/helloworld/model/MessageStore.java   |  31 ++
 .../apache/struts/register/action/Register.java |  64 ++++
 .../apache/struts/register/model/Person.java    |  62 ++++
 form-validation/src/main/resources/log4j.dtd    | 227 ++++++++++++++
 form-validation/src/main/resources/log4j.xml    |  28 ++
 form-validation/src/main/resources/struts.xml   |  32 ++
 form-validation/src/main/webapp/HelloWorld.jsp  |  16 +
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 .../src/main/webapp/META-INF/context.xml        |   2 +
 form-validation/src/main/webapp/WEB-INF/web.xml |  19 ++
 form-validation/src/main/webapp/index.jsp       |  30 ++
 form-validation/src/main/webapp/register.jsp    |  27 ++
 form-validation/src/main/webapp/thankyou.jsp    |  19 ++
 form-xml-validation/README.txt                  |  16 +
 form-xml-validation/pom.xml                     |  23 ++
 .../apache/struts/edit/action/EditAction.java   |  95 ++++++
 .../org/apache/struts/edit/model/Person.java    | 121 ++++++++
 .../org/apache/struts/edit/model/State.java     |  39 +++
 .../apache/struts/edit/service/EditService.java |  12 +
 .../edit/service/EditServiceInMemory.java       |  60 ++++
 .../src/main/resources/log4j.dtd                | 227 ++++++++++++++
 .../src/main/resources/log4j.xml                |  28 ++
 .../edit/action/EditAction-validation.xml       |  34 +++
 .../struts/edit/action/EditAction.properties    |  10 +
 .../src/main/resources/struts.xml               |  30 ++
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 .../src/main/webapp/META-INF/context.xml        |   2 +
 .../src/main/webapp/WEB-INF/web.xml             |  19 ++
 form-xml-validation/src/main/webapp/edit.jsp    |  30 ++
 form-xml-validation/src/main/webapp/index.jsp   |  16 +
 .../src/main/webapp/thankyou.jsp                |  21 ++
 form_processing/README.txt                      |  16 -
 form_processing/pom.xml                         |  21 --
 .../helloworld/action/HelloWorldAction.java     |  80 -----
 .../struts/helloworld/model/MessageStore.java   |  31 --
 .../apache/struts/register/action/Register.java |  40 ---
 .../apache/struts/register/model/Person.java    |  62 ----
 form_processing/src/main/resources/log4j.dtd    | 227 --------------
 form_processing/src/main/resources/log4j.xml    |  28 --
 form_processing/src/main/resources/struts.xml   |  31 --
 form_processing/src/main/webapp/HelloWorld.jsp  |  16 -
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 form_processing/src/main/webapp/WEB-INF/web.xml |  19 --
 form_processing/src/main/webapp/index.jsp       |  30 --
 form_processing/src/main/webapp/register.jsp    |  26 --
 form_processing/src/main/webapp/thankyou.jsp    |  19 --
 form_tags/README.txt                            |  16 -
 form_tags/pom.xml                               |  22 --
 .../apache/struts/edit/action/EditAction.java   |  96 ------
 .../org/apache/struts/edit/model/Person.java    |  96 ------
 .../org/apache/struts/edit/model/State.java     |  39 ---
 .../apache/struts/edit/service/EditService.java |  12 -
 .../edit/service/EditServiceInMemory.java       |  51 ----
 form_tags/src/main/resources/log4j.dtd          | 227 --------------
 form_tags/src/main/resources/log4j.xml          |  28 --
 .../struts/edit/action/EditAction.properties    |   8 -
 form_tags/src/main/resources/struts.xml         |  29 --
 form_tags/src/main/webapp/META-INF/MANIFEST.MF  |   3 -
 form_tags/src/main/webapp/WEB-INF/web.xml       |  19 --
 form_tags/src/main/webapp/edit.jsp              |  28 --
 form_tags/src/main/webapp/index.jsp             |  16 -
 form_tags/src/main/webapp/thankyou.jsp          |  21 --
 form_validation/README.txt                      |  16 -
 form_validation/pom.xml                         |  23 --
 .../helloworld/action/HelloWorldAction.java     |  80 -----
 .../struts/helloworld/model/MessageStore.java   |  31 --
 .../apache/struts/register/action/Register.java |  65 ----
 .../apache/struts/register/model/Person.java    |  62 ----
 form_validation/src/main/resources/log4j.dtd    | 227 --------------
 form_validation/src/main/resources/log4j.xml    |  28 --
 form_validation/src/main/resources/struts.xml   |  32 --
 form_validation/src/main/webapp/HelloWorld.jsp  |  16 -
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 .../src/main/webapp/META-INF/context.xml        |   2 -
 form_validation/src/main/webapp/WEB-INF/web.xml |  19 --
 form_validation/src/main/webapp/index.jsp       |  30 --
 form_validation/src/main/webapp/register.jsp    |  27 --
 form_validation/src/main/webapp/thankyou.jsp    |  19 --
 form_xml_validation/README.txt                  |  16 -
 form_xml_validation/pom.xml                     |  23 --
 .../apache/struts/edit/action/EditAction.java   |  96 ------
 .../org/apache/struts/edit/model/Person.java    | 121 --------
 .../org/apache/struts/edit/model/State.java     |  39 ---
 .../apache/struts/edit/service/EditService.java |  12 -
 .../edit/service/EditServiceInMemory.java       |  60 ----
 .../src/main/resources/log4j.dtd                | 227 --------------
 .../src/main/resources/log4j.xml                |  28 --
 .../edit/action/EditAction-validation.xml       |  34 ---
 .../struts/edit/action/EditAction.properties    |  10 -
 .../src/main/resources/struts.xml               |  30 --
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 .../src/main/webapp/META-INF/context.xml        |   2 -
 .../src/main/webapp/WEB-INF/web.xml             |  19 --
 form_xml_validation/src/main/webapp/edit.jsp    |  30 --
 form_xml_validation/src/main/webapp/index.jsp   |  16 -
 .../src/main/webapp/thankyou.jsp                |  21 --
 helloworld/README.txt                           |   2 +-
 helloworld/pom.xml                              |  35 ++-
 http-session/README.txt                         |  16 +
 http-session/pom.xml                            |  23 ++
 .../helloworld/action/HelloWorldAction.java     | 120 ++++++++
 .../struts/helloworld/model/MessageStore.java   |  31 ++
 http-session/src/main/resources/log4j.dtd       | 227 ++++++++++++++
 http-session/src/main/resources/log4j.xml       |  28 ++
 http-session/src/main/resources/struts.xml      |  45 +++
 http-session/src/main/webapp/HelloWorld.jsp     |  17 ++
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 http-session/src/main/webapp/WEB-INF/web.xml    |  19 ++
 http-session/src/main/webapp/index.jsp          |  28 ++
 http_session/README.txt                         |  16 -
 http_session/pom.xml                            |  23 --
 .../helloworld/action/HelloWorldAction.java     | 121 --------
 .../struts/helloworld/model/MessageStore.java   |  31 --
 http_session/src/main/resources/log4j.dtd       | 227 --------------
 http_session/src/main/resources/log4j.xml       |  28 --
 http_session/src/main/resources/struts.xml      |  45 ---
 http_session/src/main/webapp/HelloWorld.jsp     |  17 --
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 http_session/src/main/webapp/WEB-INF/web.xml    |  19 --
 http_session/src/main/webapp/index.jsp          |  28 --
 interceptors/pom.xml                            |  39 +--
 jboss-blank/pom.xml                             |   7 -
 mailreader/pom.xml                              |   5 -
 message-resource/README.txt                     |  16 +
 message-resource/pom.xml                        |  24 ++
 .../helloworld/action/HelloWorldAction.java     |  79 +++++
 .../struts/helloworld/model/MessageStore.java   |  31 ++
 .../apache/struts/register/action/Register.java |  64 ++++
 .../apache/struts/register/model/Person.java    |  62 ++++
 .../src/main/resources/global.properties        |   1 +
 .../src/main/resources/global_es.properties     |   1 +
 message-resource/src/main/resources/log4j.dtd   | 227 ++++++++++++++
 message-resource/src/main/resources/log4j.xml   |  28 ++
 .../org/apache/struts/package.properties        |   2 +
 .../org/apache/struts/package_es.properties     |   2 +
 .../struts/register/action/Register.properties  |   6 +
 .../register/action/Register_es.properties      |   6 +
 message-resource/src/main/resources/struts.xml  |  37 +++
 message-resource/src/main/webapp/HelloWorld.jsp |  19 ++
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 .../src/main/webapp/WEB-INF/web.xml             |  19 ++
 message-resource/src/main/webapp/index.jsp      |  43 +++
 message-resource/src/main/webapp/register.jsp   |  29 ++
 message-resource/src/main/webapp/thankyou.jsp   |  20 ++
 message_resource/README.txt                     |  16 -
 message_resource/pom.xml                        |  23 --
 .../helloworld/action/HelloWorldAction.java     |  80 -----
 .../struts/helloworld/model/MessageStore.java   |  31 --
 .../apache/struts/register/action/Register.java |  65 ----
 .../apache/struts/register/model/Person.java    |  62 ----
 .../src/main/resources/global.properties        |   1 -
 .../src/main/resources/global_es.properties     |   1 -
 message_resource/src/main/resources/log4j.dtd   | 227 --------------
 message_resource/src/main/resources/log4j.xml   |  28 --
 .../org/apache/struts/package.properties        |   2 -
 .../org/apache/struts/package_es.properties     |   2 -
 .../struts/register/action/Register.properties  |   6 -
 .../register/action/Register_es.properties      |   6 -
 message_resource/src/main/resources/struts.xml  |  37 ---
 message_resource/src/main/webapp/HelloWorld.jsp |  19 --
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 .../src/main/webapp/WEB-INF/web.xml             |  19 --
 message_resource/src/main/webapp/index.jsp      |  42 ---
 message_resource/src/main/webapp/register.jsp   |  29 --
 message_resource/src/main/webapp/thankyou.jsp   |  20 --
 pom.xml                                         |  28 +-
 preparable-interface/README.txt                 |  16 +
 preparable-interface/pom.xml                    |  24 ++
 .../apache/struts/edit/action/EditAction.java   |  96 ++++++
 .../org/apache/struts/edit/model/Person.java    | 121 ++++++++
 .../org/apache/struts/edit/model/State.java     |  35 +++
 .../struts/edit/service/CarModelsService.java   |  18 ++
 .../edit/service/CarModelsServiceHardCoded.java |  22 ++
 .../apache/struts/edit/service/EditService.java |  12 +
 .../edit/service/EditServiceInMemory.java       |  60 ++++
 .../src/main/resources/log4j2.xml               |  16 +
 .../edit/action/EditAction-validation.xml       |  35 +++
 .../struts/edit/action/EditAction.properties    |  10 +
 .../src/main/resources/struts.xml               |  30 ++
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 .../src/main/webapp/WEB-INF/web.xml             |  19 ++
 preparable-interface/src/main/webapp/edit.jsp   |  30 ++
 preparable-interface/src/main/webapp/index.jsp  |  16 +
 .../src/main/webapp/thankyou.jsp                |  21 ++
 preparable_interface/README.txt                 |  16 -
 preparable_interface/pom.xml                    |  24 --
 .../apache/struts/edit/action/EditAction.java   |  96 ------
 .../org/apache/struts/edit/model/Person.java    | 121 --------
 .../org/apache/struts/edit/model/State.java     |  35 ---
 .../struts/edit/service/CarModelsService.java   |  18 --
 .../edit/service/CarModelsServiceHardCoded.java |  22 --
 .../apache/struts/edit/service/EditService.java |  12 -
 .../edit/service/EditServiceInMemory.java       |  60 ----
 .../src/main/resources/log4j2.xml               |  16 -
 .../edit/action/EditAction-validation.xml       |  35 ---
 .../struts/edit/action/EditAction.properties    |  10 -
 .../src/main/resources/struts.xml               |  30 --
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 .../src/main/webapp/WEB-INF/web.xml             |  19 --
 preparable_interface/src/main/webapp/edit.jsp   |  30 --
 preparable_interface/src/main/webapp/index.jsp  |  16 -
 .../src/main/webapp/thankyou.jsp                |  21 --
 restful2actionmapper/pom.xml                    |  38 ++-
 spring-struts/README.txt                        |  16 +
 spring-struts/pom.xml                           |  29 ++
 .../apache/struts/edit/action/EditAction.java   | 106 +++++++
 .../org/apache/struts/edit/model/Person.java    |  96 ++++++
 .../org/apache/struts/edit/model/State.java     |  39 +++
 .../apache/struts/edit/service/EditService.java |  12 +
 .../edit/service/EditServiceInMemory.java       |  51 ++++
 spring-struts/src/main/resources/log4j.dtd      | 227 ++++++++++++++
 spring-struts/src/main/resources/log4j.xml      |  28 ++
 .../struts/edit/action/EditAction.properties    |   8 +
 spring-struts/src/main/resources/struts.xml     |  29 ++
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 .../main/webapp/WEB-INF/applicationContext.xml  |  10 +
 spring-struts/src/main/webapp/WEB-INF/web.xml   |  25 ++
 spring-struts/src/main/webapp/edit.jsp          |  29 ++
 spring-struts/src/main/webapp/index.jsp         |  16 +
 spring-struts/src/main/webapp/thankyou.jsp      |  21 ++
 spring_struts/README.txt                        |  16 -
 spring_struts/pom.xml                           |  28 --
 .../apache/struts/edit/action/EditAction.java   | 108 -------
 .../org/apache/struts/edit/model/Person.java    |  96 ------
 .../org/apache/struts/edit/model/State.java     |  39 ---
 .../apache/struts/edit/service/EditService.java |  12 -
 .../edit/service/EditServiceInMemory.java       |  51 ----
 spring_struts/src/main/resources/log4j.dtd      | 227 --------------
 spring_struts/src/main/resources/log4j.xml      |  28 --
 .../struts/edit/action/EditAction.properties    |   8 -
 spring_struts/src/main/resources/struts.xml     |  29 --
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 .../main/webapp/WEB-INF/applicationContext.xml  |  10 -
 spring_struts/src/main/webapp/WEB-INF/web.xml   |  25 --
 spring_struts/src/main/webapp/edit.jsp          |  29 --
 spring_struts/src/main/webapp/index.jsp         |  16 -
 spring_struts/src/main/webapp/thankyou.jsp      |  21 --
 themes-override/README.txt                      |  16 +
 themes-override/pom.xml                         |  40 +++
 .../apache/struts/edit/action/EditAction.java   |  95 ++++++
 .../org/apache/struts/edit/model/Person.java    |  96 ++++++
 .../org/apache/struts/edit/model/State.java     |  39 +++
 .../apache/struts/edit/service/EditService.java |  12 +
 .../edit/service/EditServiceInMemory.java       |  51 ++++
 themes-override/src/main/resources/log4j.dtd    | 227 ++++++++++++++
 themes-override/src/main/resources/log4j.xml    |  28 ++
 .../struts/edit/action/EditAction.properties    |   8 +
 themes-override/src/main/resources/struts.xml   |  30 ++
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 .../webapp/WEB-INF/template/simple/a-close.ftl  |  45 +++
 .../main/webapp/WEB-INF/template/simple/a.ftl   |  22 ++
 .../WEB-INF/template/simple/actionerror.ftl     |  43 +++
 .../WEB-INF/template/simple/actionmessage.ftl   |  43 +++
 .../webapp/WEB-INF/template/simple/checkbox.ftl |  50 +++
 .../WEB-INF/template/simple/checkboxlist.ftl    | 113 +++++++
 .../webapp/WEB-INF/template/simple/combobox.ftl | 103 +++++++
 .../template/simple/common-attributes.ftl       |  25 ++
 .../WEB-INF/template/simple/controlfooter.ftl   |  22 ++
 .../WEB-INF/template/simple/controlheader.ftl   |  22 ++
 .../main/webapp/WEB-INF/template/simple/css.ftl |  35 +++
 .../webapp/WEB-INF/template/simple/debug.ftl    |  82 +++++
 .../WEB-INF/template/simple/div-close.ftl       |  23 ++
 .../main/webapp/WEB-INF/template/simple/div.ftl |  32 ++
 .../WEB-INF/template/simple/doubleselect.ftl    | 198 ++++++++++++
 .../template/simple/dynamic-attributes.ftl      |  34 +++
 .../webapp/WEB-INF/template/simple/empty.ftl    |  22 ++
 .../WEB-INF/template/simple/fielderror.ftl      |  82 +++++
 .../webapp/WEB-INF/template/simple/file.ftl     |  48 +++
 .../WEB-INF/template/simple/form-close.ftl      | 113 +++++++
 .../WEB-INF/template/simple/form-common.ftl     |  67 +++++
 .../webapp/WEB-INF/template/simple/form.ftl     |  27 ++
 .../webapp/WEB-INF/template/simple/head.ftl     |  23 ++
 .../webapp/WEB-INF/template/simple/hidden.ftl   |  41 +++
 .../template/simple/inputtransferselect.ftl     | 124 ++++++++
 .../webapp/WEB-INF/template/simple/label.ftl    |  45 +++
 .../webapp/WEB-INF/template/simple/optgroup.ftl |  51 ++++
 .../template/simple/optiontransferselect.ftl    | 301 +++++++++++++++++++
 .../webapp/WEB-INF/template/simple/password.ftl |  53 ++++
 .../webapp/WEB-INF/template/simple/radiomap.ftl |  94 ++++++
 .../webapp/WEB-INF/template/simple/reset.ftl    |  76 +++++
 .../template/simple/scripting-events.ftl        |  64 ++++
 .../webapp/WEB-INF/template/simple/select.ftl   | 140 +++++++++
 .../WEB-INF/template/simple/submit-close.ftl    |   6 +
 .../webapp/WEB-INF/template/simple/submit.ftl   |  93 ++++++
 .../webapp/WEB-INF/template/simple/table.ftl    |  76 +++++
 .../webapp/WEB-INF/template/simple/text.ftl     |  54 ++++
 .../webapp/WEB-INF/template/simple/textarea.ftl |  53 ++++
 .../webapp/WEB-INF/template/simple/token.ftl    |  24 ++
 .../WEB-INF/template/simple/updownselect.ftl    |  57 ++++
 .../webapp/WEB-INF/template/xhtml/checkbox.ftl  | 129 ++++++++
 .../WEB-INF/template/xhtml/checkboxlist.ftl     |  25 ++
 .../webapp/WEB-INF/template/xhtml/combobox.ftl  |  25 ++
 .../WEB-INF/template/xhtml/control-close.ftl    |  23 ++
 .../webapp/WEB-INF/template/xhtml/control.ftl   |  26 ++
 .../WEB-INF/template/xhtml/controlfooter.ftl    |  38 +++
 .../template/xhtml/controlheader-core.ftl       |  81 +++++
 .../WEB-INF/template/xhtml/controlheader.ftl    |  28 ++
 .../WEB-INF/template/xhtml/doubleselect.ftl     |  25 ++
 .../main/webapp/WEB-INF/template/xhtml/file.ftl |  25 ++
 .../template/xhtml/form-close-validate.ftl      | 158 ++++++++++
 .../WEB-INF/template/xhtml/form-close.ftl       |  35 +++
 .../WEB-INF/template/xhtml/form-validate.ftl    |  31 ++
 .../main/webapp/WEB-INF/template/xhtml/form.ftl |  33 ++
 .../main/webapp/WEB-INF/template/xhtml/head.ftl |  24 ++
 .../webapp/WEB-INF/template/xhtml/hidden.ftl    |  27 ++
 .../template/xhtml/inputtransferselect.ftl      |  25 ++
 .../webapp/WEB-INF/template/xhtml/label.ftl     |  25 ++
 .../template/xhtml/optiontransferselect.ftl     |  25 ++
 .../webapp/WEB-INF/template/xhtml/password.ftl  |  25 ++
 .../webapp/WEB-INF/template/xhtml/radiomap.ftl  |  25 ++
 .../webapp/WEB-INF/template/xhtml/reset.ftl     |  31 ++
 .../webapp/WEB-INF/template/xhtml/select.ftl    |  25 ++
 .../webapp/WEB-INF/template/xhtml/styles.css    |  29 ++
 .../WEB-INF/template/xhtml/submit-close.ftl     |  25 ++
 .../webapp/WEB-INF/template/xhtml/submit.ftl    |  29 ++
 .../main/webapp/WEB-INF/template/xhtml/text.ftl |  25 ++
 .../webapp/WEB-INF/template/xhtml/textarea.ftl  |  25 ++
 .../WEB-INF/template/xhtml/theme.properties     |  21 ++
 .../webapp/WEB-INF/template/xhtml/tooltip.ftl   |  41 +++
 .../WEB-INF/template/xhtml/updownselect.ftl     |  25 ++
 .../webapp/WEB-INF/template/xhtml/validation.js | 139 +++++++++
 themes-override/src/main/webapp/WEB-INF/web.xml |  19 ++
 themes-override/src/main/webapp/edit.jsp        |  29 ++
 themes-override/src/main/webapp/index.jsp       |  16 +
 themes-override/src/main/webapp/thankyou.jsp    |  21 ++
 themes_override/README.txt                      |  16 -
 themes_override/pom.xml                         |  42 ---
 .../apache/struts/edit/action/EditAction.java   |  96 ------
 .../org/apache/struts/edit/model/Person.java    |  96 ------
 .../org/apache/struts/edit/model/State.java     |  39 ---
 .../apache/struts/edit/service/EditService.java |  12 -
 .../edit/service/EditServiceInMemory.java       |  51 ----
 themes_override/src/main/resources/log4j.dtd    | 227 --------------
 themes_override/src/main/resources/log4j.xml    |  28 --
 .../struts/edit/action/EditAction.properties    |   8 -
 themes_override/src/main/resources/struts.xml   |  30 --
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 .../webapp/WEB-INF/template/simple/a-close.ftl  |  45 ---
 .../main/webapp/WEB-INF/template/simple/a.ftl   |  22 --
 .../WEB-INF/template/simple/actionerror.ftl     |  43 ---
 .../WEB-INF/template/simple/actionmessage.ftl   |  43 ---
 .../webapp/WEB-INF/template/simple/checkbox.ftl |  50 ---
 .../WEB-INF/template/simple/checkboxlist.ftl    | 113 -------
 .../webapp/WEB-INF/template/simple/combobox.ftl | 103 -------
 .../template/simple/common-attributes.ftl       |  25 --
 .../WEB-INF/template/simple/controlfooter.ftl   |  22 --
 .../WEB-INF/template/simple/controlheader.ftl   |  22 --
 .../main/webapp/WEB-INF/template/simple/css.ftl |  35 ---
 .../webapp/WEB-INF/template/simple/debug.ftl    |  82 -----
 .../WEB-INF/template/simple/div-close.ftl       |  23 --
 .../main/webapp/WEB-INF/template/simple/div.ftl |  32 --
 .../WEB-INF/template/simple/doubleselect.ftl    | 198 ------------
 .../template/simple/dynamic-attributes.ftl      |  34 ---
 .../webapp/WEB-INF/template/simple/empty.ftl    |  22 --
 .../WEB-INF/template/simple/fielderror.ftl      |  82 -----
 .../webapp/WEB-INF/template/simple/file.ftl     |  48 ---
 .../WEB-INF/template/simple/form-close.ftl      | 113 -------
 .../WEB-INF/template/simple/form-common.ftl     |  67 -----
 .../webapp/WEB-INF/template/simple/form.ftl     |  27 --
 .../webapp/WEB-INF/template/simple/head.ftl     |  23 --
 .../webapp/WEB-INF/template/simple/hidden.ftl   |  41 ---
 .../template/simple/inputtransferselect.ftl     | 124 --------
 .../webapp/WEB-INF/template/simple/label.ftl    |  45 ---
 .../webapp/WEB-INF/template/simple/optgroup.ftl |  51 ----
 .../template/simple/optiontransferselect.ftl    | 301 -------------------
 .../webapp/WEB-INF/template/simple/password.ftl |  53 ----
 .../webapp/WEB-INF/template/simple/radiomap.ftl |  94 ------
 .../webapp/WEB-INF/template/simple/reset.ftl    |  76 -----
 .../template/simple/scripting-events.ftl        |  64 ----
 .../webapp/WEB-INF/template/simple/select.ftl   | 140 ---------
 .../WEB-INF/template/simple/submit-close.ftl    |   6 -
 .../webapp/WEB-INF/template/simple/submit.ftl   |  93 ------
 .../webapp/WEB-INF/template/simple/table.ftl    |  76 -----
 .../webapp/WEB-INF/template/simple/text.ftl     |  54 ----
 .../webapp/WEB-INF/template/simple/textarea.ftl |  53 ----
 .../webapp/WEB-INF/template/simple/token.ftl    |  24 --
 .../WEB-INF/template/simple/updownselect.ftl    |  57 ----
 .../webapp/WEB-INF/template/xhtml/checkbox.ftl  | 129 --------
 .../WEB-INF/template/xhtml/checkboxlist.ftl     |  25 --
 .../webapp/WEB-INF/template/xhtml/combobox.ftl  |  25 --
 .../WEB-INF/template/xhtml/control-close.ftl    |  23 --
 .../webapp/WEB-INF/template/xhtml/control.ftl   |  26 --
 .../WEB-INF/template/xhtml/controlfooter.ftl    |  38 ---
 .../template/xhtml/controlheader-core.ftl       |  81 -----
 .../WEB-INF/template/xhtml/controlheader.ftl    |  28 --
 .../WEB-INF/template/xhtml/doubleselect.ftl     |  25 --
 .../main/webapp/WEB-INF/template/xhtml/file.ftl |  25 --
 .../template/xhtml/form-close-validate.ftl      | 158 ----------
 .../WEB-INF/template/xhtml/form-close.ftl       |  35 ---
 .../WEB-INF/template/xhtml/form-validate.ftl    |  31 --
 .../main/webapp/WEB-INF/template/xhtml/form.ftl |  33 --
 .../main/webapp/WEB-INF/template/xhtml/head.ftl |  24 --
 .../webapp/WEB-INF/template/xhtml/hidden.ftl    |  27 --
 .../template/xhtml/inputtransferselect.ftl      |  25 --
 .../webapp/WEB-INF/template/xhtml/label.ftl     |  25 --
 .../template/xhtml/optiontransferselect.ftl     |  25 --
 .../webapp/WEB-INF/template/xhtml/password.ftl  |  25 --
 .../webapp/WEB-INF/template/xhtml/radiomap.ftl  |  25 --
 .../webapp/WEB-INF/template/xhtml/reset.ftl     |  31 --
 .../webapp/WEB-INF/template/xhtml/select.ftl    |  25 --
 .../webapp/WEB-INF/template/xhtml/styles.css    |  29 --
 .../WEB-INF/template/xhtml/submit-close.ftl     |  25 --
 .../webapp/WEB-INF/template/xhtml/submit.ftl    |  29 --
 .../main/webapp/WEB-INF/template/xhtml/text.ftl |  25 --
 .../webapp/WEB-INF/template/xhtml/textarea.ftl  |  25 --
 .../WEB-INF/template/xhtml/theme.properties     |  21 --
 .../webapp/WEB-INF/template/xhtml/tooltip.ftl   |  41 ---
 .../WEB-INF/template/xhtml/updownselect.ftl     |  25 --
 .../webapp/WEB-INF/template/xhtml/validation.js | 139 ---------
 themes_override/src/main/webapp/WEB-INF/web.xml |  19 --
 themes_override/src/main/webapp/edit.jsp        |  29 --
 themes_override/src/main/webapp/index.jsp       |  16 -
 themes_override/src/main/webapp/thankyou.jsp    |  21 --
 unit-testing/README.txt                         |  18 ++
 unit-testing/pom.xml                            |  45 +++
 .../apache/struts/register/action/Register.java |  64 ++++
 .../apache/struts/register/model/Person.java    |  62 ++++
 unit-testing/src/main/resources/log4j.dtd       | 227 ++++++++++++++
 unit-testing/src/main/resources/log4j.xml       |  28 ++
 unit-testing/src/main/resources/struts.xml      |  27 ++
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 unit-testing/src/main/webapp/WEB-INF/web.xml    |  19 ++
 unit-testing/src/main/webapp/index.jsp          |  17 ++
 unit-testing/src/main/webapp/register.jsp       |  27 ++
 unit-testing/src/main/webapp/thankyou.jsp       |  19 ++
 .../struts/register/action/RegisterTest.java    |  80 +++++
 unit_testing/README.txt                         |  18 --
 unit_testing/pom.xml                            |  45 ---
 .../apache/struts/register/action/Register.java |  65 ----
 .../apache/struts/register/model/Person.java    |  62 ----
 unit_testing/src/main/resources/log4j.dtd       | 227 --------------
 unit_testing/src/main/resources/log4j.xml       |  28 --
 unit_testing/src/main/resources/struts.xml      |  27 --
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 unit_testing/src/main/webapp/WEB-INF/web.xml    |  19 --
 unit_testing/src/main/webapp/index.jsp          |  17 --
 unit_testing/src/main/webapp/register.jsp       |  27 --
 unit_testing/src/main/webapp/thankyou.jsp       |  19 --
 .../struts/register/action/RegisterTest.java    |  82 -----
 using-tags/README.txt                           |  16 +
 using-tags/pom.xml                              |  23 ++
 .../helloworld/action/HelloWorldAction.java     |  62 ++++
 .../helloworld/model/MessageStore.java          |  31 ++
 using-tags/src/main/resources/log4j.dtd         | 227 ++++++++++++++
 using-tags/src/main/resources/log4j.xml         |  28 ++
 using-tags/src/main/resources/struts.xml        |  27 ++
 using-tags/src/main/webapp/HelloWorld.jsp       |  15 +
 using-tags/src/main/webapp/WEB-INF/web.xml      |  19 ++
 using-tags/src/main/webapp/index.jsp            |  28 ++
 using_tags/README.txt                           |  16 -
 using_tags/pom.xml                              |  21 --
 .../helloworld/action/HelloWorldAction.java     |  64 ----
 .../helloworld/model/MessageStore.java          |  31 --
 using_tags/src/main/resources/log4j.dtd         | 227 --------------
 using_tags/src/main/resources/log4j.xml         |  28 --
 using_tags/src/main/resources/struts.xml        |  27 --
 using_tags/src/main/webapp/HelloWorld.jsp       |  15 -
 using_tags/src/main/webapp/WEB-INF/web.xml      |  19 --
 using_tags/src/main/webapp/index.jsp            |  28 --
 wildcard-method-selection/README.txt            |  16 +
 wildcard-method-selection/pom.xml               |  39 +++
 .../wildcardmethod/action/PersonAction.java     |  93 ++++++
 .../tutorials/wildcardmethod/model/Person.java  |  55 ++++
 .../wildcardmethod/service/PersonService.java   |  88 ++++++
 .../src/main/resources/log4j2.xml               |  16 +
 .../src/main/resources/struts.xml               |  26 ++
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 +
 .../src/main/webapp/WEB-INF/web.xml             |  20 ++
 .../src/main/webapp/index.jsp                   |   1 +
 .../src/main/webapp/input.jsp                   |  40 +++
 .../src/main/webapp/view.jsp                    |  60 ++++
 wildcard_method_selection/README.txt            |  16 -
 wildcard_method_selection/pom.xml               |  40 ---
 .../wildcardmethod/action/PersonAction.java     |  93 ------
 .../tutorials/wildcardmethod/model/Person.java  |  55 ----
 .../wildcardmethod/service/PersonService.java   |  88 ------
 .../src/main/resources/log4j2.xml               |  16 -
 .../src/main/resources/struts.xml               |  26 --
 .../src/main/webapp/META-INF/MANIFEST.MF        |   3 -
 .../src/main/webapp/WEB-INF/web.xml             |  20 --
 .../src/main/webapp/index.jsp                   |   1 -
 .../src/main/webapp/input.jsp                   |  40 ---
 .../src/main/webapp/view.jsp                    |  60 ----
 592 files changed, 13116 insertions(+), 13138 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/blank/pom.xml
----------------------------------------------------------------------
diff --git a/blank/pom.xml b/blank/pom.xml
index 0f51076..78f467c 100644
--- a/blank/pom.xml
+++ b/blank/pom.xml
@@ -49,13 +49,6 @@
             <scope>provided</scope>
         </dependency>
 
-        <!-- Logging -->
-        <dependency>
-            <groupId>org.apache.logging.log4j</groupId>
-            <artifactId>log4j-core</artifactId>
-            <version>${log4j2.version}</version>
-        </dependency>
-
         <dependency>
             <groupId>org.apache.struts</groupId>
             <artifactId>struts2-junit-plugin</artifactId>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/README.txt
----------------------------------------------------------------------
diff --git a/exception-handling/README.txt b/exception-handling/README.txt
new file mode 100644
index 0000000..de86365
--- /dev/null
+++ b/exception-handling/README.txt
@@ -0,0 +1,16 @@
+This is the example project referred to in the
+Struts 2 documentation, Exception Handling tutorial.
+See:  http://struts.apache.org.
+
+To build the application's war file run mvn clean package
+from the project's root folder.
+
+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/exception-handling/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/exception-handling/pom.xml
----------------------------------------------------------------------
diff --git a/exception-handling/pom.xml b/exception-handling/pom.xml
new file mode 100644
index 0000000..86a555d
--- /dev/null
+++ b/exception-handling/pom.xml
@@ -0,0 +1,23 @@
+<?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>exception-handling</artifactId>
+
+    <name>Exception handling</name>
+
+    <description>Exception handling example application for the Struts 2 getting started tutorials</description>
+    <packaging>war</packaging>
+
+    <build>
+        <finalName>exception-handling</finalName>
+    </build>
+
+</project>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java b/exception-handling/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
new file mode 100644
index 0000000..1285010
--- /dev/null
+++ b/exception-handling/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
@@ -0,0 +1,79 @@
+package org.apache.struts.helloworld.action;
+
+import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts.helloworld.model.MessageStore;
+
+/**
+ * Acts as a Struts 2 controller that responds
+ * to a user action by setting the value
+ * of the Message model class, and returns a String 
+ * result.
+ * @author Bruce Phillips
+ *
+ */
+public class HelloWorldAction extends ActionSupport {
+
+	private static final long serialVersionUID = 1L;
+	
+	/**
+	 * The model class that stores the message
+	 * to display in the view.
+	 */
+	private MessageStore messageStore;
+	
+	private static int helloCount = 0;
+	
+	public int getHelloCount() {
+		return helloCount;
+	}
+
+	public void setHelloCount(int helloCount) {
+		HelloWorldAction.helloCount = helloCount;
+	}
+	
+	private String userName;
+
+	public String getUserName() {
+		return userName;
+	}
+
+	public void setUserName(String userName) {
+		this.userName = userName;
+	}
+
+	/*
+	 * Creates the MessageStore model object, 
+	 * increase helloCount by 1 and 
+	 * returns success.  The MessageStore model
+	 * object will be available to the view.
+	 * (non-Javadoc)
+	 * @see com.opensymphony.xwork2.ActionSupport#execute()
+	 */
+	public String execute() throws Exception {
+		
+		messageStore = new MessageStore() ;
+		
+		//Action included a query string parameter of userName
+		//or a form field with name of userName
+		if (userName != null) {
+			
+			messageStore.setMessage( messageStore.getMessage() + " " + userName);
+			
+		}
+		
+		helloCount++;
+		
+		return SUCCESS;
+	}
+
+	public MessageStore getMessageStore() {
+		return messageStore;
+	}
+
+	public void setMessageStore(MessageStore messageStore) {
+		this.messageStore = messageStore;
+	}
+	
+	
+
+}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/java/org/apache/struts/helloworld/model/MessageStore.java b/exception-handling/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
new file mode 100644
index 0000000..b7fceeb
--- /dev/null
+++ b/exception-handling/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
@@ -0,0 +1,31 @@
+package org.apache.struts.helloworld.model;
+
+/**
+ * Model class that stores a message.
+ * @author Bruce Phillips
+ *
+ */
+public class MessageStore {
+	
+	private String message;
+	
+	public MessageStore() {
+		
+		setMessage("Hello Struts User");
+	}
+
+	public String getMessage() {
+		return message;
+	}
+
+	public void setMessage(String message) {
+		this.message = message;
+	}
+	
+	public String toString() {
+		
+		return message + " (from toString)";
+		
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/src/main/java/org/apache/struts/register/action/Register.java
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/java/org/apache/struts/register/action/Register.java b/exception-handling/src/main/java/org/apache/struts/register/action/Register.java
new file mode 100644
index 0000000..991416b
--- /dev/null
+++ b/exception-handling/src/main/java/org/apache/struts/register/action/Register.java
@@ -0,0 +1,60 @@
+package org.apache.struts.register.action;
+
+import com.opensymphony.xwork2.ActionSupport;
+import org.apache.struts.register.exceptions.SecurityBreachException;
+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;
+
+	@Override
+	public String execute() throws Exception {
+
+		// call Service class to store personBean's state in database
+
+		return SUCCESS;
+
+	}
+
+	public void throwException() throws Exception {
+
+		throw new Exception("Exception thrown from throwException");
+
+	}
+
+	public void throwNullPointerException() throws NullPointerException {
+
+		throw new NullPointerException("Null Pointer Exception thrown from "
+				+ Register.class.toString());
+	}
+
+	public void throwSecurityException() throws SecurityBreachException {
+
+		throw new SecurityBreachException(
+				"Security breach exception thrown from throwSecurityException");
+	}
+
+	public Person getPersonBean() {
+
+		return personBean;
+
+	}
+
+	public void setPersonBean(Person person) {
+
+		personBean = person;
+
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java b/exception-handling/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java
new file mode 100644
index 0000000..127c3bd
--- /dev/null
+++ b/exception-handling/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java
@@ -0,0 +1,19 @@
+package org.apache.struts.register.exceptions;
+
+public class SecurityBreachException extends Exception {
+
+	private static final long serialVersionUID = -1232121594261703341L;
+
+	public SecurityBreachException() {
+		
+		super("Security Exception");
+		
+		
+	}
+	
+	public SecurityBreachException(String message) {
+		
+		super(message);
+	}
+
+}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/src/main/java/org/apache/struts/register/model/Person.java
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/java/org/apache/struts/register/model/Person.java b/exception-handling/src/main/java/org/apache/struts/register/model/Person.java
new file mode 100644
index 0000000..3020bbb
--- /dev/null
+++ b/exception-handling/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/exception-handling/src/main/resources/log4j.dtd
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/resources/log4j.dtd b/exception-handling/src/main/resources/log4j.dtd
new file mode 100644
index 0000000..1aabd96
--- /dev/null
+++ b/exception-handling/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/exception-handling/src/main/resources/log4j.xml
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/resources/log4j.xml b/exception-handling/src/main/resources/log4j.xml
new file mode 100644
index 0000000..2100cb2
--- /dev/null
+++ b/exception-handling/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/exception-handling/src/main/resources/struts.xml
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/resources/struts.xml b/exception-handling/src/main/resources/struts.xml
new file mode 100644
index 0000000..c77b0de
--- /dev/null
+++ b/exception-handling/src/main/resources/struts.xml
@@ -0,0 +1,78 @@
+<?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">
+	
+	<!-- setup the default-stack exception mapping interceptor 
+ 		so that any exceptions not caught by this application 
+ 		will be logged and then handled by the global exception 
+ 		mapping -->
+ 		<interceptors>
+ 		<interceptor-stack name="appDefault">
+        	 <interceptor-ref name="defaultStack">
+      			<param name="exception.logEnabled">true</param>
+      			<param name="exception.logLevel">ERROR</param>
+   			</interceptor-ref>
+ 	    </interceptor-stack>
+		</interceptors>
+		
+		<default-interceptor-ref name="appDefault" />
+		
+        <global-results>
+  		  <result name="error">/error.jsp</result>
+  		  <result name="securityerror">/securityerror.jsp</result>
+  	    </global-results>
+  		
+
+	    <global-exception-mappings>
+	        <exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" result="securityerror" />
+	        <exception-mapping exception="java.lang.Exception" result="error" />
+	   	</global-exception-mappings>
+	  
+	    
+         
+        <action name="causesecurityexception" class="org.apache.struts.register.action.Register" method="throwSecurityException">
+        	<result>/register.jsp</result>
+        </action>
+        
+        <action name="causeexception" class="org.apache.struts.register.action.Register" method="throwException">
+        	<result>/register.jsp</result>
+        </action>
+        
+        <action name="causenullpointerexception" class="org.apache.struts.register.action.Register" method="throwNullPointerException">
+        	<result>/register.jsp</result>
+        </action>
+        
+        <action name="actionspecificexception" class="org.apache.struts.register.action.Register" method="throwSecurityException">
+        	<exception-mapping exception="org.apache.struts.register.exceptions.SecurityBreachException" 
+        	   result="login" />
+        	<result>/register.jsp</result>
+        	<result name="login">/login.jsp</result>
+        </action>
+
+        <!-- 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>
+		
+		<!-- If the URL is hello.action the call the execute method of class HelloWorldAction.
+		If the result returned by the execute method is success render the HelloWorld.jsp -->
+		<action name="hello" class="org.apache.struts.helloworld.action.HelloWorldAction" method="execute">
+			<result name="success">/HelloWorld.jsp</result>
+		</action>
+		
+  <action name="register" class="org.apache.struts.register.action.Register" method="execute">
+	<result name="success">/thankyou.jsp</result>
+  </action>
+
+	</package>
+
+</struts>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/src/main/webapp/HelloWorld.jsp
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/webapp/HelloWorld.jsp b/exception-handling/src/main/webapp/HelloWorld.jsp
new file mode 100644
index 0000000..286a6ab
--- /dev/null
+++ b/exception-handling/src/main/webapp/HelloWorld.jsp
@@ -0,0 +1,16 @@
+<%@ 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>Hello World!</title>
+</head>
+<body>
+<h2><s:property value="messageStore.message" /></h2>
+<p>I've said hello <s:property value="helloCount" /> times!</p>
+<p><s:property value="messageStore" /></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/exception-handling/src/main/webapp/META-INF/MANIFEST.MF
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/webapp/META-INF/MANIFEST.MF b/exception-handling/src/main/webapp/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..254272e
--- /dev/null
+++ b/exception-handling/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/exception-handling/src/main/webapp/WEB-INF/web.xml
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/webapp/WEB-INF/web.xml b/exception-handling/src/main/webapp/WEB-INF/web.xml
new file mode 100644
index 0000000..abfd1f4
--- /dev/null
+++ b/exception-handling/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>Exception Handling</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/exception-handling/src/main/webapp/error.jsp
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/webapp/error.jsp b/exception-handling/src/main/webapp/error.jsp
new file mode 100644
index 0000000..d33d2e4
--- /dev/null
+++ b/exception-handling/src/main/webapp/error.jsp
@@ -0,0 +1,24 @@
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<html>
+
+	<head>
+    <title>Error</title>
+	</head>
+
+	<body>
+		<h4>The application has malfunctioned.</h4>
+		<p>  Please contact technical support with the following information:</p> 
+		
+		<!-- the exception and exceptionStack bean properties
+		were created by Struts2's Exception Intercepter  -->
+		<h4>Exception Name: <s:property value="exception" /> </h4>
+		<h4>Exception Details: <s:property value="exceptionStack" /></h4> 
+		
+	
+	    <p><a href="index.jsp">Return to the home page.</a></p>
+	  
+		
+	</body>
+	
+</html>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/src/main/webapp/index.jsp
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/webapp/index.jsp b/exception-handling/src/main/webapp/index.jsp
new file mode 100644
index 0000000..0e38bcc
--- /dev/null
+++ b/exception-handling/src/main/webapp/index.jsp
@@ -0,0 +1,39 @@
+<%@ 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>Exception Handling Struts 2 Application - Welcome</title>
+</head>
+<body>
+<h1>Welcome To Struts 2!</h1>
+<p><a href="<s:url action='hello'/>">Hello World</a></p>
+<s:url action="hello" var="helloLink">
+  <s:param name="userName">Bruce Phillips</s:param>
+</s:url>
+<p><a href="${helloLink}">Hello Bruce Phillips</a></p>
+
+<p>Get your own personal hello by filling out and submitting this form.</p>
+
+<s:form action="hello">
+
+	<s:textfield name="userName" label="Your name" />
+	
+	<s:submit value="Submit" />
+
+</s:form>
+
+<p><a href="register.jsp">Please register</a> for our prize drawing.</p>
+
+<p><a href='<s:url action="causeexception" />' >Cause Exception</a></p> 
+
+<p><a href='<s:url action="causenullpointerexception" />' >Cause Null Pointer Exception</a></p> 
+
+<p><a href='<s:url action="causesecurityexception" />' >Cause Global Security Exception</a></p> 
+
+<p><a href='<s:url action="actionspecificexception" />' >Cause ActionSpecific Security Exception</a></p>
+  
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/src/main/webapp/login.jsp
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/webapp/login.jsp b/exception-handling/src/main/webapp/login.jsp
new file mode 100644
index 0000000..1b59392
--- /dev/null
+++ b/exception-handling/src/main/webapp/login.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>Exception Handling Struts 2 Application - Login</title>
+</head>
+<body>
+<h1>You Must Login</h1>
+<p>Please login</p>
+
+<p><a href="index.jsp">Return to the home page.</a></p>
+	  
+</body>
+</html>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/src/main/webapp/register.jsp
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/webapp/register.jsp b/exception-handling/src/main/webapp/register.jsp
new file mode 100644
index 0000000..0adac76
--- /dev/null
+++ b/exception-handling/src/main/webapp/register.jsp
@@ -0,0 +1,26 @@
+<?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>
+</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/exception-handling/src/main/webapp/securityerror.jsp
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/webapp/securityerror.jsp b/exception-handling/src/main/webapp/securityerror.jsp
new file mode 100644
index 0000000..ed6204d
--- /dev/null
+++ b/exception-handling/src/main/webapp/securityerror.jsp
@@ -0,0 +1,24 @@
+<%@ page contentType="text/html; charset=UTF-8" %>
+<%@ taglib prefix="s" uri="/struts-tags" %>
+<html>
+
+	<head>
+    <title>Security Error</title>
+	</head>
+
+	<body>
+		<h4>There has been a security error.</h4>
+		<p>  Please contact technical support with the following information:</p> 
+		
+		<!-- the exception and exceptionStack bean properties
+		were created by Struts2's Exception Intercepter -->
+		<h4>Exception Name: <s:property value="exception" /> </h4>
+		<h4>Exception Details: <s:property value="exceptionStack" /></h4> 
+		
+	
+	    <p><a href="index.jsp">Return to the home page.</a></p>
+	  
+		
+	</body>
+	
+</html>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception-handling/src/main/webapp/thankyou.jsp
----------------------------------------------------------------------
diff --git a/exception-handling/src/main/webapp/thankyou.jsp b/exception-handling/src/main/webapp/thankyou.jsp
new file mode 100644
index 0000000..3c845bc
--- /dev/null
+++ b/exception-handling/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/exception_handling/README.txt
----------------------------------------------------------------------
diff --git a/exception_handling/README.txt b/exception_handling/README.txt
deleted file mode 100644
index ad79377..0000000
--- a/exception_handling/README.txt
+++ /dev/null
@@ -1,16 +0,0 @@
-This is the example project referred to in the
-Struts 2 documentation, Exception Handling tutorial.
-See:  http://struts.apache.org.
-
-To build the application's war file run mvn clean package
-from the project's root folder.
-
-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/exception_handling/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/exception_handling/pom.xml
----------------------------------------------------------------------
diff --git a/exception_handling/pom.xml b/exception_handling/pom.xml
deleted file mode 100644
index 3456b62..0000000
--- a/exception_handling/pom.xml
+++ /dev/null
@@ -1,23 +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>exception_handling</artifactId>
-
-  <name>Exception handling</name>
-
-<description>Exception handling example application for the 
-  Struts 2 getting started tutorials</description>
-  <packaging>war</packaging>
-  
-      <build>
-		<finalName>exception_handling</finalName>
-	</build>
-
-</project>

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception_handling/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
----------------------------------------------------------------------
diff --git a/exception_handling/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java b/exception_handling/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
deleted file mode 100644
index 92fda49..0000000
--- a/exception_handling/src/main/java/org/apache/struts/helloworld/action/HelloWorldAction.java
+++ /dev/null
@@ -1,80 +0,0 @@
-package org.apache.struts.helloworld.action;
-
-import org.apache.struts.helloworld.model.MessageStore;
-
-import com.opensymphony.xwork2.ActionSupport;
-
-/**
- * Acts as a Struts 2 controller that responds
- * to a user action by setting the value
- * of the Message model class, and returns a String 
- * result.
- * @author Bruce Phillips
- *
- */
-public class HelloWorldAction extends ActionSupport {
-
-	private static final long serialVersionUID = 1L;
-	
-	/**
-	 * The model class that stores the message
-	 * to display in the view.
-	 */
-	private MessageStore messageStore;
-	
-	private static int helloCount = 0;
-	
-	public int getHelloCount() {
-		return helloCount;
-	}
-
-	public void setHelloCount(int helloCount) {
-		HelloWorldAction.helloCount = helloCount;
-	}
-	
-	private String userName;
-
-	public String getUserName() {
-		return userName;
-	}
-
-	public void setUserName(String userName) {
-		this.userName = userName;
-	}
-
-	/*
-	 * Creates the MessageStore model object, 
-	 * increase helloCount by 1 and 
-	 * returns success.  The MessageStore model
-	 * object will be available to the view.
-	 * (non-Javadoc)
-	 * @see com.opensymphony.xwork2.ActionSupport#execute()
-	 */
-	public String execute() throws Exception {
-		
-		messageStore = new MessageStore() ;
-		
-		//Action included a query string parameter of userName
-		//or a form field with name of userName
-		if (userName != null) {
-			
-			messageStore.setMessage( messageStore.getMessage() + " " + userName);
-			
-		}
-		
-		helloCount++;
-		
-		return SUCCESS;
-	}
-
-	public MessageStore getMessageStore() {
-		return messageStore;
-	}
-
-	public void setMessageStore(MessageStore messageStore) {
-		this.messageStore = messageStore;
-	}
-	
-	
-
-}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception_handling/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
----------------------------------------------------------------------
diff --git a/exception_handling/src/main/java/org/apache/struts/helloworld/model/MessageStore.java b/exception_handling/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
deleted file mode 100644
index b7fceeb..0000000
--- a/exception_handling/src/main/java/org/apache/struts/helloworld/model/MessageStore.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package org.apache.struts.helloworld.model;
-
-/**
- * Model class that stores a message.
- * @author Bruce Phillips
- *
- */
-public class MessageStore {
-	
-	private String message;
-	
-	public MessageStore() {
-		
-		setMessage("Hello Struts User");
-	}
-
-	public String getMessage() {
-		return message;
-	}
-
-	public void setMessage(String message) {
-		this.message = message;
-	}
-	
-	public String toString() {
-		
-		return message + " (from toString)";
-		
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception_handling/src/main/java/org/apache/struts/register/action/Register.java
----------------------------------------------------------------------
diff --git a/exception_handling/src/main/java/org/apache/struts/register/action/Register.java b/exception_handling/src/main/java/org/apache/struts/register/action/Register.java
deleted file mode 100644
index 698f0e2..0000000
--- a/exception_handling/src/main/java/org/apache/struts/register/action/Register.java
+++ /dev/null
@@ -1,61 +0,0 @@
-package org.apache.struts.register.action;
-
-import org.apache.struts.register.exceptions.SecurityBreachException;
-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;
-
-	@Override
-	public String execute() throws Exception {
-
-		// call Service class to store personBean's state in database
-
-		return SUCCESS;
-
-	}
-
-	public void throwException() throws Exception {
-
-		throw new Exception("Exception thrown from throwException");
-
-	}
-
-	public void throwNullPointerException() throws NullPointerException {
-
-		throw new NullPointerException("Null Pointer Exception thrown from "
-				+ Register.class.toString());
-	}
-
-	public void throwSecurityException() throws SecurityBreachException {
-
-		throw new SecurityBreachException(
-				"Security breach exception thrown from throwSecurityException");
-	}
-
-	public Person getPersonBean() {
-
-		return personBean;
-
-	}
-
-	public void setPersonBean(Person person) {
-
-		personBean = person;
-
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception_handling/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java
----------------------------------------------------------------------
diff --git a/exception_handling/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java b/exception_handling/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java
deleted file mode 100644
index a22152d..0000000
--- a/exception_handling/src/main/java/org/apache/struts/register/exceptions/SecurityBreachException.java
+++ /dev/null
@@ -1,19 +0,0 @@
-package org.apache.struts.register.exceptions;
-
-public class SecurityBreachException extends Exception {
-
-	private static final long serialVersionUID = -1232121594261703341L;
-
-	public SecurityBreachException() {
-		
-		super("Security Exception");
-		
-		
-	}
-	
-	public SecurityBreachException(String message) {
-		
-		super(message);
-	}
-
-}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception_handling/src/main/java/org/apache/struts/register/model/Person.java
----------------------------------------------------------------------
diff --git a/exception_handling/src/main/java/org/apache/struts/register/model/Person.java b/exception_handling/src/main/java/org/apache/struts/register/model/Person.java
deleted file mode 100644
index 3020bbb..0000000
--- a/exception_handling/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() ;
-    }
-}

http://git-wip-us.apache.org/repos/asf/struts-examples/blob/433ea016/exception_handling/src/main/resources/log4j.dtd
----------------------------------------------------------------------
diff --git a/exception_handling/src/main/resources/log4j.dtd b/exception_handling/src/main/resources/log4j.dtd
deleted file mode 100644
index 1aabd96..0000000
--- a/exception_handling/src/main/resources/log4j.dtd
+++ /dev/null
@@ -1,227 +0,0 @@
-<?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/exception_handling/src/main/resources/log4j.xml
----------------------------------------------------------------------
diff --git a/exception_handling/src/main/resources/log4j.xml b/exception_handling/src/main/resources/log4j.xml
deleted file mode 100644
index 2100cb2..0000000
--- a/exception_handling/src/main/resources/log4j.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?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> 
-