You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by gi...@apache.org on 2022/04/05 05:25:16 UTC

[struts-site] branch asf-staging updated: Updates stage by Jenkins

This is an automated email from the ASF dual-hosted git repository.

git-site-role pushed a commit to branch asf-staging
in repository https://gitbox.apache.org/repos/asf/struts-site.git


The following commit(s) were added to refs/heads/asf-staging by this push:
     new 04c9ff83d Updates stage by Jenkins
04c9ff83d is described below

commit 04c9ff83d6a0986ac97b783f1f4ef90629772a23
Author: jenkins <bu...@apache.org>
AuthorDate: Tue Apr 5 05:25:12 2022 +0000

    Updates stage by Jenkins
---
 content/.htaccess                                  |   2 +-
 content/404.html                                   |   2 +-
 content/announce-2002.html                         |   2 +-
 content/announce-2003.html                         |   2 +-
 content/announce-2004.html                         |   2 +-
 content/announce-2005.html                         |   2 +-
 content/announce-2006.html                         |   2 +-
 content/announce-2007.html                         |   2 +-
 content/announce-2008.html                         |   2 +-
 content/announce-2009.html                         |   2 +-
 content/announce-2010.html                         |   2 +-
 content/announce-2011.html                         |   2 +-
 content/announce-2012.html                         |   2 +-
 content/announce-2013.html                         |   2 +-
 content/announce-2014.html                         |   2 +-
 content/announce-2015.html                         |   4 +-
 content/announce-2016.html                         |   2 +-
 content/announce-2017.html                         |   2 +-
 content/announce-2018.html                         |   2 +-
 content/announce-2019.html                         |   2 +-
 content/announce-2020.html                         |   2 +-
 content/announce-2021.html                         |   2 +-
 content/announce-2022.html                         |  55 ++-
 content/birdseye.html                              |  20 +-
 content/builds.html                                |   8 +-
 content/bylaws.html                                |   2 +-
 content/coding-standards.html                      |   2 +-
 .../contributors/building-fast-track-release.html  |   2 +-
 content/contributors/building-normal-release.html  |   6 +-
 .../contributors/building-struts-annotations.html  |   2 +-
 content/contributors/building-struts-master.html   |   2 +-
 .../building-the-framework-from-source.html        |   4 +-
 content/contributors/building-with-maven.html      |   2 +-
 .../creating-and-signing-a-distribution.html       |   2 +-
 .../contributors/documentation-style-guide.html    |   2 +-
 .../contributors/editing-the-documentation.html    |   2 +-
 content/contributors/index.html                    |   2 +-
 .../contributors/obtaining-an-idea-license.html    |   2 +-
 content/contributors/one-time-steps.html           |   2 +-
 content/contributors/precise-error-reporting.html  |   2 +-
 content/contributors/sample-announcements.html     |   2 +-
 ...essing-application-session-request-objects.html |   2 +-
 content/core-developers/action-chaining.html       |   2 +-
 content/core-developers/action-configuration.html  |   2 +-
 content/core-developers/action-event-listener.html |   2 +-
 content/core-developers/action-mapper.html         |   2 +-
 .../action-proxy-and-actionproxy-factory.html      |   2 +-
 content/core-developers/after-annotation.html      |   2 +-
 .../ajax-client-side-validation.html               |   2 +-
 content/core-developers/ajax.html                  |   2 +-
 content/core-developers/alias-interceptor.html     |   2 +-
 .../annotation-parameter-filter-interceptor.html   |   2 +-
 .../annotation-workflow-interceptor.html           |   2 +-
 content/core-developers/annotations.html           |   2 +-
 content/core-developers/application-servers.html   |   2 +-
 content/core-developers/basic-validation.html      |   2 +-
 content/core-developers/bean-configuration.html    |   2 +-
 content/core-developers/before-annotation.html     |   2 +-
 .../core-developers/before-result-annotation.html  |   2 +-
 content/core-developers/big-picture.html           |   2 +-
 content/core-developers/chain-result.html          |   2 +-
 content/core-developers/chaining-interceptor.html  |   2 +-
 content/core-developers/checkbox-interceptor.html  |   2 +-
 .../core-developers/clear-session-interceptor.html |   2 +-
 .../core-developers/client-side-validation.html    |   2 +-
 content/core-developers/client-validation.html     |   2 +-
 content/core-developers/coep-interceptor.html      |   2 +-
 .../conditionalvisitor-validator.html              |   2 +-
 .../core-developers/configuration-elements.html    |   2 +-
 content/core-developers/configuration-files.html   |   2 +-
 .../configuration-provider-and-configuration.html  |   2 +-
 .../core-developers/constant-configuration.html    |   2 +-
 content/core-developers/conversion-annotation.html |   2 +-
 ...onversion-error-field-validator-annotation.html |   2 +-
 .../conversion-error-interceptor.html              |   2 +-
 content/core-developers/conversion-validator.html  |   2 +-
 content/core-developers/cookie-interceptor.html    |   2 +-
 .../cookie-provider-interceptor.html               |   2 +-
 content/core-developers/coop-interceptor.html      |   2 +-
 .../core-developers/create-if-null-annotation.html |   2 +-
 .../create-session-interceptor.html                |   2 +-
 .../custom-validator-annotation.html               |   2 +-
 .../date-range-field-validator-annotation.html     |   2 +-
 content/core-developers/date-validator.html        |   2 +-
 content/core-developers/debugging-interceptor.html |   2 +-
 content/core-developers/debugging.html             |   2 +-
 content/core-developers/default-properties.html    |  15 +-
 .../default-workflow-interceptor.html              |   2 +-
 content/core-developers/dependency-injection.html  |   2 +-
 content/core-developers/development-mode.html      |   2 +-
 content/core-developers/dispatcher-listener.html   |   2 +-
 content/core-developers/dispatcher-result.html     |   2 +-
 content/core-developers/dispatcher.html            |   2 +-
 .../double-range-field-validator-annotation.html   |   2 +-
 content/core-developers/double-validator.html      |   2 +-
 content/core-developers/element-annotation.html    |   2 +-
 .../email-validator-annotation.html                |   2 +-
 content/core-developers/email-validator.html       |   2 +-
 .../core-developers/exception-configuration.html   |   2 +-
 content/core-developers/exception-interceptor.html |   2 +-
 .../execute-and-wait-interceptor.html              |   2 +-
 .../expression-validator-annotation.html           |   2 +-
 content/core-developers/expression-validator.html  |   2 +-
 .../fetch-metadata-interceptor.html                |   2 +-
 .../field-expression-validator-annotation.html     |   2 +-
 .../core-developers/fieldexpression-validator.html |   2 +-
 .../core-developers/file-upload-interceptor.html   |   2 +-
 content/core-developers/file-upload.html           | 408 +++++++++++----------
 .../formatting-dates-and-numbers.html              |   2 +-
 content/core-developers/freemarker-result.html     |   2 +-
 content/core-developers/freemarker-support.html    |   2 +-
 content/core-developers/glassfish-2-x.html         |   2 +-
 content/core-developers/httpheader-result.html     |   2 +-
 content/core-developers/https-and-ie-issues.html   |   2 +-
 content/core-developers/i18n-interceptor.html      |   2 +-
 content/core-developers/include-configuration.html |   2 +-
 content/core-developers/index.html                 |   2 +-
 .../core-developers/input-config-annotation.html   |   2 +-
 .../int-range-field-validator-annotation.html      |   2 +-
 content/core-developers/int-validator.html         |   2 +-
 .../core-developers/interceptor-configuration.html |   2 +-
 content/core-developers/interceptors.html          |   7 +-
 content/core-developers/jboss-5.html               |   2 +-
 content/core-developers/key-annotation.html        |   2 +-
 .../core-developers/key-property-annotation.html   |   2 +-
 content/core-developers/localization.html          |   2 +-
 content/core-developers/logging-interceptor.html   |   2 +-
 content/core-developers/logging.html               |   2 +-
 .../core-developers/message-store-interceptor.html |   2 +-
 .../core-developers/model-driven-interceptor.html  |   2 +-
 content/core-developers/model-driven.html          |   2 +-
 .../core-developers/multiselect-interceptor.html   |   2 +-
 content/core-developers/namespace-annotation.html  |   2 +-
 .../core-developers/namespace-configuration.html   |   2 +-
 content/core-developers/no-op-interceptor.html     |   2 +-
 content/core-developers/nutshell.html              |   2 +-
 content/core-developers/object-factory.html        |   2 +-
 content/core-developers/package-configuration.html |   2 +-
 .../parameter-remover-interceptor.html             |   2 +-
 .../core-developers/parameters-interceptor.html    |   2 +-
 content/core-developers/performance-tuning.html    |   2 +-
 content/core-developers/plain-result.html          |   2 +-
 content/core-developers/plaintext-result.html      |   2 +-
 content/core-developers/postback-result.html       |   2 +-
 content/core-developers/pre-result-listener.html   |   2 +-
 content/core-developers/prepare-interceptor.html   |   2 +-
 .../pure-java-script-client-side-validation.html   |   2 +-
 .../core-developers/redirect-action-result.html    |   2 +-
 content/core-developers/redirect-result.html       |   2 +-
 .../regex-field-validator-annotation.html          |   2 +-
 content/core-developers/regex-validator.html       |   2 +-
 .../core-developers/reloading-configuration.html   |   2 +-
 .../required-field-validator-annotation.html       |   2 +-
 .../required-string-validator-annotation.html      |   2 +-
 content/core-developers/required-validator.html    |   2 +-
 .../core-developers/requiredstring-validator.html  |   2 +-
 content/core-developers/restful-action-mapper.html |   2 +-
 content/core-developers/result-configuration.html  |   2 +-
 content/core-developers/result-types.html          |   2 +-
 content/core-developers/roles-interceptor.html     |   2 +-
 content/core-developers/scope-interceptor.html     |   2 +-
 .../scoped-model-driven-interceptor.html           |   2 +-
 .../servlet-config-interceptor.html                |   2 +-
 content/core-developers/short-validator.html       |   2 +-
 content/core-developers/static-content.html        |   2 +-
 .../static-parameters-interceptor.html             |   2 +-
 content/core-developers/stream-result.html         |   2 +-
 .../string-length-field-validator-annotation.html  |   2 +-
 .../core-developers/stringlength-validator.html    |   2 +-
 content/core-developers/struts-default-vm.html     |   2 +-
 content/core-developers/struts-default-xml.html    |   7 +-
 content/core-developers/struts-xml.html            |   2 +-
 content/core-developers/sunone-7-0.html            |   2 +-
 content/core-developers/timer-interceptor.html     |   2 +-
 content/core-developers/token-interceptor.html     |   2 +-
 .../core-developers/token-session-interceptor.html |   2 +-
 .../type-conversion-annotation.html                |   6 +-
 content/core-developers/type-conversion.html       |  13 +-
 content/core-developers/unknown-handlers.html      |   2 +-
 .../core-developers/url-validator-annotation.html  |   2 +-
 content/core-developers/url-validator.html         |   2 +-
 .../core-developers/using-field-validators.html    |   2 +-
 .../using-non-field-validators.html                |   2 +-
 .../using-visitor-field-validator.html             |   2 +-
 content/core-developers/validation-annotation.html |   2 +-
 .../core-developers/validation-interceptor.html    |   2 +-
 .../validation-parameter-annotation.html           |   2 +-
 content/core-developers/validation.html            |   2 +-
 .../core-developers/validations-annotation.html    |   2 +-
 content/core-developers/velocity-properties.html   |   2 +-
 content/core-developers/velocity-result.html       |   2 +-
 .../visitor-field-validator-annotation.html        |   2 +-
 content/core-developers/visitor-validator.html     |   2 +-
 content/core-developers/web-xml.html               |   2 +-
 content/core-developers/weblogic-6-1.html          |   2 +-
 content/core-developers/weblogic.html              |   2 +-
 content/core-developers/websphere.html             |   2 +-
 content/core-developers/wildcard-mappings.html     |   2 +-
 content/core-developers/writing-interceptors.html  |   2 +-
 content/core-developers/xsl-result.html            |   2 +-
 content/dev-mail.html                              |   2 +-
 content/docs/index.html                            |   2 +-
 content/download.html                              |  46 +--
 content/getting-started/annotations.html           |   2 +-
 content/getting-started/coding-actions.html        |   2 +-
 content/getting-started/control-tags.html          |   2 +-
 content/getting-started/debugging-struts.html      |   2 +-
 content/getting-started/exception-handling.html    |   2 +-
 content/getting-started/exclude-parameters.html    |   2 +-
 content/getting-started/form-tags.html             |   2 +-
 .../getting-started/form-validation-using-xml.html |   2 +-
 content/getting-started/form-validation.html       |   2 +-
 .../getting-started/hello-world-using-struts2.html |   2 +-
 .../how-to-create-a-struts2-web-application.html   |   2 +-
 content/getting-started/http-session.html          |   2 +-
 content/getting-started/index.html                 |   2 +-
 .../getting-started/introducing-interceptors.html  |   2 +-
 .../getting-started/jasper-reports-tutorial.html   |   2 +-
 .../getting-started/message-resource-files.html    |   2 +-
 content/getting-started/preperable-interface.html  |   2 +-
 content/getting-started/processing-forms.html      |   2 +-
 content/getting-started/spring.html                |   2 +-
 content/getting-started/themes.html                |   2 +-
 content/getting-started/unit-testing.html          |   2 +-
 content/getting-started/using-tags.html            |   2 +-
 .../getting-started/wildcard-method-selection.html |   2 +-
 content/helping.html                               |   2 +-
 content/index.html                                 |  12 +-
 content/kickstart.html                             |   2 +-
 content/mail.html                                  |   2 +-
 content/maven-archetypes/index.html                |   2 +-
 .../maven-archetypes/struts2-archetype-blank.html  |   2 +-
 content/plugins/bean-validation/index.html         |   2 +-
 content/plugins/cdi/index.html                     |   2 +-
 content/plugins/codebehind/index.html              |   2 +-
 content/plugins/config-browser/index.html          |   2 +-
 content/plugins/convention/converting.html         |   2 +-
 content/plugins/convention/index.html              |   2 +-
 content/plugins/dwr/index.html                     |   2 +-
 content/plugins/embedded-jsp/index.html            |   2 +-
 ...tending-an-application-with-custom-plugins.html |   2 +-
 content/plugins/index.html                         |   2 +-
 content/plugins/jasperreports/index.html           |   2 +-
 content/plugins/java-8-support/index.html          |   2 +-
 content/plugins/javatemplates/index.html           |   2 +-
 content/plugins/jfreechart/index.html              |   2 +-
 content/plugins/jsf/index.html                     |   2 +-
 content/plugins/json/index.html                    |   2 +-
 content/plugins/json/json-ajax-validation.html     |   2 +-
 content/plugins/junit/index.html                   |   2 +-
 content/plugins/osgi/index.html                    |   2 +-
 content/plugins/oval/index.html                    |   2 +-
 content/plugins/plexus/index.html                  |   2 +-
 content/plugins/plugins.html                       |   2 +-
 content/plugins/portlet-tiles/index.html           |   2 +-
 content/plugins/portlet/index.html                 |   2 +-
 .../plugins/portlet/struts-2-portlet-tutorial.html |   2 +-
 content/plugins/rest/index.html                    |   2 +-
 content/plugins/sitegraph/index.html               |   2 +-
 content/plugins/sitemesh/index.html                |   2 +-
 content/plugins/spring/index.html                  |   2 +-
 .../spring-session-components-workarounds.html     |   2 +-
 content/plugins/struts-1/index.html                |   2 +-
 content/plugins/testng/index.html                  |   2 +-
 content/plugins/tiles-3/index.html                 |   2 +-
 content/plugins/tiles/index.html                   |   2 +-
 content/plugins/tiles/tiles-use.html               |   2 +-
 content/primer.html                                |   8 +-
 content/release-guidelines.html                    |   2 +-
 content/releases.html                              |  94 ++++-
 content/security.html                              |   2 +-
 content/security/index.html                        |   2 +-
 content/struts1eol-announcement.html               |   2 +-
 content/struts1eol-press.html                      |   2 +-
 content/struts23-eol-announcement.html             |   2 +-
 content/submitting-patches.html                    |   2 +-
 content/tag-developers/a-tag.html                  |   4 +-
 .../access-to-valuestack-from-jsps.html            |   2 +-
 content/tag-developers/action-tag.html             |   2 +-
 content/tag-developers/actionerror-tag.html        |   2 +-
 content/tag-developers/actionmessage-tag.html      |   2 +-
 content/tag-developers/ajax-a-template.html        |   2 +-
 .../ajax-and-javascript-recipes.html               |   2 +-
 content/tag-developers/ajax-div-template.html      |   2 +-
 content/tag-developers/ajax-event-system.html      |   2 +-
 content/tag-developers/ajax-head-template.html     |   2 +-
 content/tag-developers/ajax-tags.html              |   2 +-
 content/tag-developers/ajax-theme.html             |   2 +-
 content/tag-developers/alt-syntax.html             |   2 +-
 content/tag-developers/append-tag.html             |   2 +-
 content/tag-developers/bean-tag.html               |   2 +-
 .../cewolf-charts-using-velocity-templates.html    |   2 +-
 content/tag-developers/checkbox-tag.html           |   2 +-
 content/tag-developers/checkboxlist-tag.html       |   2 +-
 content/tag-developers/combobox-tag.html           |   2 +-
 content/tag-developers/component-tag.html          |   2 +-
 content/tag-developers/css-xhtml-theme.html        |   2 +-
 content/tag-developers/date-tag.html               |   2 +-
 content/tag-developers/datetextfield-tag.html      |   2 +-
 content/tag-developers/debug-tag.html              |   2 +-
 content/tag-developers/dojo-a-tag.html             |   2 +-
 content/tag-developers/dojo-autocompleter-tag.html |   2 +-
 content/tag-developers/dojo-bind-tag.html          |   2 +-
 .../tag-developers/dojo-datetimepicker-tag.html    |   2 +-
 content/tag-developers/dojo-div-tag.html           |   2 +-
 content/tag-developers/dojo-head-tag.html          |   2 +-
 content/tag-developers/dojo-submit-tag.html        |   2 +-
 content/tag-developers/dojo-tabbedpanel-tag.html   |   2 +-
 content/tag-developers/dojo-textarea-tag.html      |   2 +-
 content/tag-developers/dojo-tree-tag.html          |   2 +-
 content/tag-developers/dojo-treenode-tag.html      |   2 +-
 content/tag-developers/doubleselect-tag.html       |   2 +-
 content/tag-developers/else-tag.html               |   2 +-
 content/tag-developers/elseif-tag.html             |   2 +-
 content/tag-developers/extending-themes.html       |   2 +-
 content/tag-developers/fielderror-tag.html         |   2 +-
 content/tag-developers/file-tag.html               |   2 +-
 content/tag-developers/form-tag.html               |   2 +-
 content/tag-developers/form-tags.html              |   2 +-
 content/tag-developers/freemarker-tags.html        |   2 +-
 content/tag-developers/freemarker.html             |   2 +-
 content/tag-developers/generator-tag.html          |   2 +-
 content/tag-developers/generic-tags.html           |   2 +-
 content/tag-developers/head-tag.html               |   2 +-
 content/tag-developers/hidden-tag.html             |   2 +-
 content/tag-developers/i18n-tag.html               |   2 +-
 content/tag-developers/if-tag.html                 |   2 +-
 content/tag-developers/include-tag.html            |   2 +-
 content/tag-developers/index.html                  |   2 +-
 .../tag-developers/inputtransferselect-tag.html    |   2 +-
 content/tag-developers/iterator-tag.html           |   2 +-
 content/tag-developers/jsp-tags.html               |   2 +-
 content/tag-developers/jsp.html                    |   2 +-
 content/tag-developers/label-tag.html              |   2 +-
 content/tag-developers/merge-tag.html              |   2 +-
 content/tag-developers/ognl-basics.html            |   2 +-
 .../ognl-expression-compilation.html               |   2 +-
 content/tag-developers/ognl.html                   |   2 +-
 content/tag-developers/optgroup-tag.html           |   2 +-
 .../tag-developers/optiontransferselect-tag.html   |   2 +-
 content/tag-developers/param-tag.html              |   2 +-
 content/tag-developers/password-tag.html           |   2 +-
 content/tag-developers/property-tag.html           |   2 +-
 content/tag-developers/push-tag.html               |   2 +-
 content/tag-developers/radio-tag.html              |   2 +-
 content/tag-developers/reset-tag.html              |   2 +-
 content/tag-developers/select-tag.html             |   2 +-
 .../selecting-template-directory.html              |   2 +-
 content/tag-developers/selecting-themes.html       |   2 +-
 content/tag-developers/set-tag.html                |   2 +-
 content/tag-developers/simple-theme.html           |   2 +-
 content/tag-developers/sort-tag.html               |   2 +-
 content/tag-developers/struts-tags.html            |   2 +-
 content/tag-developers/submit-tag.html             |   4 +-
 content/tag-developers/subset-tag.html             |   2 +-
 content/tag-developers/tag-reference.html          |   2 +-
 content/tag-developers/tag-syntax.html             |  82 +++--
 content/tag-developers/template-loading.html       |   2 +-
 content/tag-developers/text-tag.html               |   2 +-
 content/tag-developers/textarea-tag.html           |   2 +-
 content/tag-developers/textfield-tag.html          |   2 +-
 content/tag-developers/themes-and-templates.html   |   2 +-
 content/tag-developers/token-tag.html              |   2 +-
 content/tag-developers/ui-tags.html                |   2 +-
 content/tag-developers/updownselect-tag.html       |   2 +-
 content/tag-developers/url-tag.html                |   2 +-
 content/tag-developers/velocity-tags.html          |   2 +-
 content/tag-developers/velocity.html               |   2 +-
 content/tag-developers/xhtml-theme.html            |   2 +-
 content/updating-website.html                      |   2 +-
 content/volunteers.html                            |   2 +-
 content/youatstruts.html                           |   2 +-
 372 files changed, 857 insertions(+), 652 deletions(-)

diff --git a/content/.htaccess b/content/.htaccess
index 88755ece0..5e9a4d175 100644
--- a/content/.htaccess
+++ b/content/.htaccess
@@ -24,6 +24,6 @@ RedirectMatch \/2.*\/(.*)?                          http://struts.apache.org/$1
 # page downloads.html was renamed to releases.html
 RedirectMatch \/downloads /releases
 
-RedirectMatch \/announce.html(#a[0-9]+)? /announce-2020.html$1
+RedirectMatch \/announce.html(#a[0-9]+)? /announce-2022.html$1
 
 ErrorDocument 404 /404
diff --git a/content/404.html b/content/404.html
index 448ad8c90..23d7de008 100644
--- a/content/404.html
+++ b/content/404.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2002.html b/content/announce-2002.html
index 060764b4a..2196ab86d 100644
--- a/content/announce-2002.html
+++ b/content/announce-2002.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2003.html b/content/announce-2003.html
index 79364b859..3eaccd9ce 100644
--- a/content/announce-2003.html
+++ b/content/announce-2003.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2004.html b/content/announce-2004.html
index 69812865a..324e04d7e 100644
--- a/content/announce-2004.html
+++ b/content/announce-2004.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2005.html b/content/announce-2005.html
index f5c26ef8c..c7f8ae523 100644
--- a/content/announce-2005.html
+++ b/content/announce-2005.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2006.html b/content/announce-2006.html
index 12814df5d..ce85aa26b 100644
--- a/content/announce-2006.html
+++ b/content/announce-2006.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2007.html b/content/announce-2007.html
index 4e15dcba3..592da9c16 100644
--- a/content/announce-2007.html
+++ b/content/announce-2007.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2008.html b/content/announce-2008.html
index e20650b45..8cb6035af 100644
--- a/content/announce-2008.html
+++ b/content/announce-2008.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2009.html b/content/announce-2009.html
index 0faa4af41..fab299ffb 100644
--- a/content/announce-2009.html
+++ b/content/announce-2009.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2010.html b/content/announce-2010.html
index 082d421a4..bfe5cc574 100644
--- a/content/announce-2010.html
+++ b/content/announce-2010.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2011.html b/content/announce-2011.html
index e54887127..cbaa8ec18 100644
--- a/content/announce-2011.html
+++ b/content/announce-2011.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2012.html b/content/announce-2012.html
index eeaba0a33..ce8af243c 100644
--- a/content/announce-2012.html
+++ b/content/announce-2012.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2013.html b/content/announce-2013.html
index 3d87f5467..3b204748e 100644
--- a/content/announce-2013.html
+++ b/content/announce-2013.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2014.html b/content/announce-2014.html
index dafc327c4..5957084c6 100644
--- a/content/announce-2014.html
+++ b/content/announce-2014.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2015.html b/content/announce-2015.html
index acc809e59..cb229d357 100644
--- a/content/announce-2015.html
+++ b/content/announce-2015.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -188,7 +188,7 @@ please post your comments to the user list, and, if appropriate, file a tracking
 
 <p>Thanks to Taki Uchiyama from JPCERT/CC who reported two potential XSS vulnerabilities available 
 in older versions of The Apache Struts 2. Please read the mentioned security bulletin for more details
-and also reading our <a href="/docs/security">Security guideline</a> will help you secure your application</p>
+and also reading our <a href="security/index">Security guideline</a> will help you secure your application</p>
 
 <h4 id="a20150731">31 July 2015 - Struts 2.5-BETA1 (BETA)</h4>
 
diff --git a/content/announce-2016.html b/content/announce-2016.html
index 8cc805222..701b333ed 100644
--- a/content/announce-2016.html
+++ b/content/announce-2016.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2017.html b/content/announce-2017.html
index 8dd316eac..e2d3111dd 100644
--- a/content/announce-2017.html
+++ b/content/announce-2017.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2018.html b/content/announce-2018.html
index 75ed46825..1f3365f72 100644
--- a/content/announce-2018.html
+++ b/content/announce-2018.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2019.html b/content/announce-2019.html
index 6b01a9802..2bc41376c 100644
--- a/content/announce-2019.html
+++ b/content/announce-2019.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2020.html b/content/announce-2020.html
index 6d9f28784..934a0ac01 100644
--- a/content/announce-2020.html
+++ b/content/announce-2020.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2021.html b/content/announce-2021.html
index 69c7ae684..945a666f3 100644
--- a/content/announce-2021.html
+++ b/content/announce-2021.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/announce-2022.html b/content/announce-2022.html
index 6d83c2722..101618a25 100644
--- a/content/announce-2022.html
+++ b/content/announce-2022.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -131,6 +131,7 @@
     <h1 class="no_toc" id="announcements-2022">Announcements 2022</h1>
 
 <ul id="markdown-toc">
+  <li><a href="#a20220404" id="markdown-toc-a20220404">04 April 2022 - Struts 2.5.30 General Availability</a></li>
   <li><a href="#a20220122" id="markdown-toc-a20220122">22 January 2022 - Struts 2.5.29 General Availability</a></li>
   <li><a href="#a20220102" id="markdown-toc-a20220102">02 January 2022 - Struts 2.5.28.3 General Availability</a></li>
 </ul>
@@ -139,6 +140,58 @@
   Skip to: <a href="announce-2021">Announcements - 2021</a>
 </p>
 
+<h4 id="a20220404">04 April 2022 - Struts 2.5.30 General Availability</h4>
+
+<p>The Apache Struts group is pleased to announce that Struts 2.5.30 is available as a “General Availability”
+release. The GA designation is our highest quality grade.</p>
+
+<p>Internal Changes:</p>
+
+<p>Yasser’s PR has been merged which contains a fix to double evaluation security vulnerability - it should solve any future 
+attack vectors, yet it can impact your application if you have been depending on double evaluation.</p>
+
+<p><strong>How to test</strong></p>
+
+<p>Run all your app tests, you shouldn’t see any <code class="highlighter-rouge">WARN</code> log like below:</p>
+
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>Expression [so-and-so] isn't allowed by pattern [so-and-so]! See Accepted / Excluded patterns at
+https://struts.apache.org/security/
+</code></pre></div></div>
+
+<p>See if following components are still functioning correctly regarding java-scripts:</p>
+<ul>
+  <li>forms with client side validations</li>
+  <li><code class="highlighter-rouge">doubleselect</code> tag</li>
+  <li><code class="highlighter-rouge">combobox</code> tag</li>
+</ul>
+
+<p>Check also <code class="highlighter-rouge">StreamResult</code>, <code class="highlighter-rouge">AliasInterceptor</code> and <code class="highlighter-rouge">JasperReportResult</code> if they are still working as expected.</p>
+
+<p>Dependency:</p>
+<ul>
+  <li>[WW-5170] - Upgrade Jackson-Core to version 2.10.5 and Jackson-Databind to 2.10.5.1</li>
+  <li>[WW-5172] - Upgrade freemarker to 2.3.31</li>
+</ul>
+
+<blockquote>
+  <p>Please read the <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.30">Version Notes</a> to find more details about performed
+bug fixes and improvements.</p>
+</blockquote>
+
+<p>Apache Struts 2 is an elegant, extensible framework for creating enterprise-ready Java web applications.
+The framework has been designed to streamline the full development cycle, from building, to deploying,
+to maintaining applications over time.</p>
+
+<p><strong>All developers are strongly advised to perform this upgrade.</strong></p>
+
+<p>The 2.5.x series of the Apache Struts framework has a minimum requirement of the following specification versions:
+Servlet API 2.4, JSP API 2.0, and Java 7.</p>
+
+<p>Should any issues arise with your use of any version of the Struts framework, please post your comments to the user list,
+and, if appropriate, file <a href="https://issues.apache.org/jira/projects/WW/">a tracking ticket</a>.</p>
+
+<p>You can download this version from our <a href="download.cgi#struts-ga">download</a> page.</p>
+
 <h4 id="a20220122">22 January 2022 - Struts 2.5.29 General Availability</h4>
 
 <p>The Apache Struts group is pleased to announce that Struts 2.5.29 is available as a “General Availability”
diff --git a/content/birdseye.html b/content/birdseye.html
index 7b168b569..831b85f08 100644
--- a/content/birdseye.html
+++ b/content/birdseye.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -139,16 +139,16 @@
 <h2 id="the-apache-struts-web-framework">The Apache Struts web framework</h2>
 
 <p>The Apache Struts web framework is a free open-source solution for
-creating Java web applications.</p>
+creating dynamic web applications using Java.</p>
 
-<p>Web applications differ from conventional websites in that web applications
-can create a dynamic response. Many websites deliver only static pages.
+<p>Web applications differ from conventional websites in a way that web applications
+can create dynamic response. Many websites deliver only static pages.
 A web application can interact with databases and business logic engines
 to customize a response.</p>
 
 <p>Web applications based on JavaServer Pages sometimes commingle database
 code, page design code, and control flow code. In practice, we find that
-unless these concerns are separated, larger applications become
+unless and until these concerns are separated, larger applications become
 difficult to maintain.</p>
 
 <p>One way to separate concerns in a software application is to use a
@@ -190,8 +190,8 @@ is the best choice for teams who value elegant solutions to difficult problems.<
 
 <h2 id="why-should-you-use-apache-struts">Why should you use Apache Struts?</h2>
 
-<p>Apache Struts is a modern, maintained and full-featured web framework. It has been there
-for years and give the huge user base it is unlikely it will go away anytime soon
+<p>Apache Struts is a modern, well-maintained and full-featured web framework. It has been there
+for years and given the huge user base, it is unlikely it will go away anytime soon
 in the future. Not only that we have dedicated users and developers on the project.
 Apache Struts is licensed to the Apache License 2.0 and this will not change. We maintain
 a clean IP and you are “safe” to use the project. Sometimes you are not “safe” to use
@@ -205,10 +205,10 @@ core team too.</p>
 using an ORM like Apache Cayenne, Hibernate or JDBC you will not have any restrictions.
 Apache Struts is not even tied too much to a frontend technology. In old days it was
 JSP, then came Velocity and Freemarker. Nowadays you might build your web application
-with just static HTML and AngularJS. Or you want to use Sitemesh or Tiles. This all
-is no problem due to Struts elegant and easy to use extension mechanisms.</p>
+with just static HTML and AngularJS or you want to use Sitemesh or Tiles. All of these pose no problem 
+due to Struts’ elegant and easy to use extension mechanisms.</p>
 
-<p>Unlike other, component oriented frameworks, we do not aim to hide the stateless nature
+<p>Unlike other component oriented frameworks, we do not aim to hide the stateless nature
 of the web. We think it is perfectly acceptable to build upon a Request/Response cycle.
 We also think the MVC pattern is not so bad, just because it is old. In fact, we believe
 the Apache Struts architecture is clean and easy to understand.</p>
diff --git a/content/builds.html b/content/builds.html
index b106d3366..c2c4baf02 100644
--- a/content/builds.html
+++ b/content/builds.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -184,15 +184,15 @@ your own applications!)</p>
 <p>Maven will automatically download any dependencies as needed.</p>
 
 <p>For more about using Maven to build Struts 2, see
-<a href="/docs/building-the-framework-from-source">Building the framework from source</a> in the
-<a href="/docs/contributors-guide">Struts 2 Contributors Guide.</a></p>
+<a href="contributors/building-the-framework-from-source">Building the framework from source</a> in the
+<a href="contributors/index">Struts 2 Contributors Guide.</a></p>
 
 <p>For more about using Maven to build Struts 1, see our <a href="http://wiki.apache.org/struts/StrutsMaintenanceMaven">Maven wiki page.</a></p>
 
 <h2 id="nightly-builds">Nightly Builds</h2>
 
 <p>As part of our continuous integration practice, we also make available each morning the
-<a href="https://nightlies.apache.org/x1/dist/struts/">latest stable development build.</a></p>
+<a href="https://nightlies.apache.org/struts/snapshot/">latest stable development build.</a></p>
 
 <p><em>Again: Use at your own risk!</em></p>
 
diff --git a/content/bylaws.html b/content/bylaws.html
index 873e1c88c..063a61b0a 100644
--- a/content/bylaws.html
+++ b/content/bylaws.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/coding-standards.html b/content/coding-standards.html
index 015ba179b..32db765df 100644
--- a/content/coding-standards.html
+++ b/content/coding-standards.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/building-fast-track-release.html b/content/contributors/building-fast-track-release.html
index e5b97d190..5b4f92df0 100644
--- a/content/contributors/building-fast-track-release.html
+++ b/content/contributors/building-fast-track-release.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/building-normal-release.html b/content/contributors/building-normal-release.html
index 9b5259062..8ab1aa528 100644
--- a/content/contributors/building-normal-release.html
+++ b/content/contributors/building-normal-release.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -344,9 +344,9 @@ push to GitHub), see <a href="https://gitbox.apache.org/setup/">https://gitbox.a
   <li>Update current version and release date in <code class="highlighter-rouge">struts-site/_config.yml</code></li>
   <li>Update page source files
     <ul>
-      <li><code class="highlighter-rouge">struts-site/source/announce.md</code> (if applicable, refer also to corresponding security bulletin)</li>
+      <li><code class="highlighter-rouge">struts-site/source/announce-&lt;year&gt;.md</code> (if applicable, refer also to corresponding security bulletin)</li>
       <li><code class="highlighter-rouge">struts-site/source/downloads.html</code> (Prior Releases section)</li>
-      <li><code class="highlighter-rouge">struts-site/source/index.html</code> (some parts will updated automatically with values defined in <code class="highlighter-rouge">_config.yml</code>)</li>
+      <li><code class="highlighter-rouge">struts-site/source/index.html</code> (some parts will be updated automatically with values defined in <code class="highlighter-rouge">_config.yml</code>)</li>
     </ul>
   </li>
   <li>You can generate the website locally with Docker Jekyll image
diff --git a/content/contributors/building-struts-annotations.html b/content/contributors/building-struts-annotations.html
index c62b0b650..e5f68cfc6 100644
--- a/content/contributors/building-struts-annotations.html
+++ b/content/contributors/building-struts-annotations.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/building-struts-master.html b/content/contributors/building-struts-master.html
index 2c94b7529..a7d47622e 100644
--- a/content/contributors/building-struts-master.html
+++ b/content/contributors/building-struts-master.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/building-the-framework-from-source.html b/content/contributors/building-the-framework-from-source.html
index 2161825e3..431087673 100644
--- a/content/contributors/building-the-framework-from-source.html
+++ b/content/contributors/building-the-framework-from-source.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -151,7 +151,7 @@ your own tweak or patch.</p>
 
 <blockquote>
   <p>If you just want to use the latest development build, perhaps because a patch you need has been applied, you can 
-also <a href="http://ci.apache.org/projects/struts/nightlies/">download a nightly build</a>.</p>
+also <a href="https://nightlies.apache.org/struts/snapshot/">download a nightly build</a>.</p>
 </blockquote>
 
 <h2 id="getting-the-sources">Getting the Sources</h2>
diff --git a/content/contributors/building-with-maven.html b/content/contributors/building-with-maven.html
index b7c007f42..8359e9973 100644
--- a/content/contributors/building-with-maven.html
+++ b/content/contributors/building-with-maven.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/creating-and-signing-a-distribution.html b/content/contributors/creating-and-signing-a-distribution.html
index 131a54392..ad107fdc3 100644
--- a/content/contributors/creating-and-signing-a-distribution.html
+++ b/content/contributors/creating-and-signing-a-distribution.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/documentation-style-guide.html b/content/contributors/documentation-style-guide.html
index b3bc60287..e9426ebcf 100644
--- a/content/contributors/documentation-style-guide.html
+++ b/content/contributors/documentation-style-guide.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/editing-the-documentation.html b/content/contributors/editing-the-documentation.html
index f8c0f278c..34a7001ff 100644
--- a/content/contributors/editing-the-documentation.html
+++ b/content/contributors/editing-the-documentation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/index.html b/content/contributors/index.html
index d5232dbfc..c5ef63fb0 100644
--- a/content/contributors/index.html
+++ b/content/contributors/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/obtaining-an-idea-license.html b/content/contributors/obtaining-an-idea-license.html
index 07bb8b6a6..80c0a7c4e 100644
--- a/content/contributors/obtaining-an-idea-license.html
+++ b/content/contributors/obtaining-an-idea-license.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/one-time-steps.html b/content/contributors/one-time-steps.html
index 5c70c36a7..fa138d881 100644
--- a/content/contributors/one-time-steps.html
+++ b/content/contributors/one-time-steps.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/precise-error-reporting.html b/content/contributors/precise-error-reporting.html
index 873472ea6..3f4596a28 100644
--- a/content/contributors/precise-error-reporting.html
+++ b/content/contributors/precise-error-reporting.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/contributors/sample-announcements.html b/content/contributors/sample-announcements.html
index fa68fea90..bc2c95274 100644
--- a/content/contributors/sample-announcements.html
+++ b/content/contributors/sample-announcements.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/accessing-application-session-request-objects.html b/content/core-developers/accessing-application-session-request-objects.html
index 916235532..528fd91b1 100644
--- a/content/core-developers/accessing-application-session-request-objects.html
+++ b/content/core-developers/accessing-application-session-request-objects.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/action-chaining.html b/content/core-developers/action-chaining.html
index 41f7c9c23..1c3b5739a 100644
--- a/content/core-developers/action-chaining.html
+++ b/content/core-developers/action-chaining.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/action-configuration.html b/content/core-developers/action-configuration.html
index 597694f50..44533b0df 100644
--- a/content/core-developers/action-configuration.html
+++ b/content/core-developers/action-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/action-event-listener.html b/content/core-developers/action-event-listener.html
index 188d2d43a..af6f6741c 100644
--- a/content/core-developers/action-event-listener.html
+++ b/content/core-developers/action-event-listener.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/action-mapper.html b/content/core-developers/action-mapper.html
index bc88b8e35..9b49c07ce 100644
--- a/content/core-developers/action-mapper.html
+++ b/content/core-developers/action-mapper.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/action-proxy-and-actionproxy-factory.html b/content/core-developers/action-proxy-and-actionproxy-factory.html
index 7ec9e0008..dbe30be73 100644
--- a/content/core-developers/action-proxy-and-actionproxy-factory.html
+++ b/content/core-developers/action-proxy-and-actionproxy-factory.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/after-annotation.html b/content/core-developers/after-annotation.html
index 3633c0adc..34d61123e 100644
--- a/content/core-developers/after-annotation.html
+++ b/content/core-developers/after-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/ajax-client-side-validation.html b/content/core-developers/ajax-client-side-validation.html
index df5692db3..c5bc99d41 100644
--- a/content/core-developers/ajax-client-side-validation.html
+++ b/content/core-developers/ajax-client-side-validation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/ajax.html b/content/core-developers/ajax.html
index 8d3aceeae..f6e00f587 100644
--- a/content/core-developers/ajax.html
+++ b/content/core-developers/ajax.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/alias-interceptor.html b/content/core-developers/alias-interceptor.html
index 62f752bf4..7d0449de9 100644
--- a/content/core-developers/alias-interceptor.html
+++ b/content/core-developers/alias-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/annotation-parameter-filter-interceptor.html b/content/core-developers/annotation-parameter-filter-interceptor.html
index 682a87286..fffd99aed 100644
--- a/content/core-developers/annotation-parameter-filter-interceptor.html
+++ b/content/core-developers/annotation-parameter-filter-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/annotation-workflow-interceptor.html b/content/core-developers/annotation-workflow-interceptor.html
index a4c46aa3d..1a73e5158 100644
--- a/content/core-developers/annotation-workflow-interceptor.html
+++ b/content/core-developers/annotation-workflow-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/annotations.html b/content/core-developers/annotations.html
index 328de0791..94990b0f4 100644
--- a/content/core-developers/annotations.html
+++ b/content/core-developers/annotations.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/application-servers.html b/content/core-developers/application-servers.html
index ea5b36f58..02d37cd1b 100644
--- a/content/core-developers/application-servers.html
+++ b/content/core-developers/application-servers.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/basic-validation.html b/content/core-developers/basic-validation.html
index 1b0fb57b9..c0e2dec4f 100644
--- a/content/core-developers/basic-validation.html
+++ b/content/core-developers/basic-validation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/bean-configuration.html b/content/core-developers/bean-configuration.html
index e0108e349..386138fde 100644
--- a/content/core-developers/bean-configuration.html
+++ b/content/core-developers/bean-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/before-annotation.html b/content/core-developers/before-annotation.html
index d6e38f626..9e9b70d0c 100644
--- a/content/core-developers/before-annotation.html
+++ b/content/core-developers/before-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/before-result-annotation.html b/content/core-developers/before-result-annotation.html
index db6bcc5d8..7a3312012 100644
--- a/content/core-developers/before-result-annotation.html
+++ b/content/core-developers/before-result-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/big-picture.html b/content/core-developers/big-picture.html
index d24135e47..5f385f53c 100644
--- a/content/core-developers/big-picture.html
+++ b/content/core-developers/big-picture.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/chain-result.html b/content/core-developers/chain-result.html
index 1330d2907..48c5f7ed4 100644
--- a/content/core-developers/chain-result.html
+++ b/content/core-developers/chain-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/chaining-interceptor.html b/content/core-developers/chaining-interceptor.html
index c731f812b..d2d5be0bf 100644
--- a/content/core-developers/chaining-interceptor.html
+++ b/content/core-developers/chaining-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/checkbox-interceptor.html b/content/core-developers/checkbox-interceptor.html
index 76f41f5bc..8beea66de 100644
--- a/content/core-developers/checkbox-interceptor.html
+++ b/content/core-developers/checkbox-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/clear-session-interceptor.html b/content/core-developers/clear-session-interceptor.html
index 6c9385a35..c884c6a58 100644
--- a/content/core-developers/clear-session-interceptor.html
+++ b/content/core-developers/clear-session-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/client-side-validation.html b/content/core-developers/client-side-validation.html
index 9b6e00068..fd4bcd27b 100644
--- a/content/core-developers/client-side-validation.html
+++ b/content/core-developers/client-side-validation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/client-validation.html b/content/core-developers/client-validation.html
index 29fac70c8..f6fbeead0 100644
--- a/content/core-developers/client-validation.html
+++ b/content/core-developers/client-validation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/coep-interceptor.html b/content/core-developers/coep-interceptor.html
index 64beb927b..ee8aa1900 100644
--- a/content/core-developers/coep-interceptor.html
+++ b/content/core-developers/coep-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/conditionalvisitor-validator.html b/content/core-developers/conditionalvisitor-validator.html
index aed9f9f59..e22d28bf6 100644
--- a/content/core-developers/conditionalvisitor-validator.html
+++ b/content/core-developers/conditionalvisitor-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/configuration-elements.html b/content/core-developers/configuration-elements.html
index dc9595af6..db0161e92 100644
--- a/content/core-developers/configuration-elements.html
+++ b/content/core-developers/configuration-elements.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/configuration-files.html b/content/core-developers/configuration-files.html
index 47d9b9221..0285873f3 100644
--- a/content/core-developers/configuration-files.html
+++ b/content/core-developers/configuration-files.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/configuration-provider-and-configuration.html b/content/core-developers/configuration-provider-and-configuration.html
index df0f9c5e8..c325ee331 100644
--- a/content/core-developers/configuration-provider-and-configuration.html
+++ b/content/core-developers/configuration-provider-and-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/constant-configuration.html b/content/core-developers/constant-configuration.html
index 4baaa4754..fcaeb841a 100644
--- a/content/core-developers/constant-configuration.html
+++ b/content/core-developers/constant-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/conversion-annotation.html b/content/core-developers/conversion-annotation.html
index 432bfd55c..da45edd34 100644
--- a/content/core-developers/conversion-annotation.html
+++ b/content/core-developers/conversion-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/conversion-error-field-validator-annotation.html b/content/core-developers/conversion-error-field-validator-annotation.html
index a45b255c1..9331860c6 100644
--- a/content/core-developers/conversion-error-field-validator-annotation.html
+++ b/content/core-developers/conversion-error-field-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/conversion-error-interceptor.html b/content/core-developers/conversion-error-interceptor.html
index fbebd8dee..797e0c19b 100644
--- a/content/core-developers/conversion-error-interceptor.html
+++ b/content/core-developers/conversion-error-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/conversion-validator.html b/content/core-developers/conversion-validator.html
index 6cb82f652..d4c4d6336 100644
--- a/content/core-developers/conversion-validator.html
+++ b/content/core-developers/conversion-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/cookie-interceptor.html b/content/core-developers/cookie-interceptor.html
index 3729fbe42..96cfb11dc 100644
--- a/content/core-developers/cookie-interceptor.html
+++ b/content/core-developers/cookie-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/cookie-provider-interceptor.html b/content/core-developers/cookie-provider-interceptor.html
index e2ba44b25..70b3d1fcf 100644
--- a/content/core-developers/cookie-provider-interceptor.html
+++ b/content/core-developers/cookie-provider-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/coop-interceptor.html b/content/core-developers/coop-interceptor.html
index 72a9009d0..043bac240 100644
--- a/content/core-developers/coop-interceptor.html
+++ b/content/core-developers/coop-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/create-if-null-annotation.html b/content/core-developers/create-if-null-annotation.html
index 1469fb4f2..68550e103 100644
--- a/content/core-developers/create-if-null-annotation.html
+++ b/content/core-developers/create-if-null-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/create-session-interceptor.html b/content/core-developers/create-session-interceptor.html
index 910030b6a..c2fb9d937 100644
--- a/content/core-developers/create-session-interceptor.html
+++ b/content/core-developers/create-session-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/custom-validator-annotation.html b/content/core-developers/custom-validator-annotation.html
index d9493cd6e..d75709222 100644
--- a/content/core-developers/custom-validator-annotation.html
+++ b/content/core-developers/custom-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/date-range-field-validator-annotation.html b/content/core-developers/date-range-field-validator-annotation.html
index 243e87bb4..b1be16296 100644
--- a/content/core-developers/date-range-field-validator-annotation.html
+++ b/content/core-developers/date-range-field-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/date-validator.html b/content/core-developers/date-validator.html
index bc5fe66b9..ab9d23903 100644
--- a/content/core-developers/date-validator.html
+++ b/content/core-developers/date-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/debugging-interceptor.html b/content/core-developers/debugging-interceptor.html
index 8b320703f..bacfa4f5e 100644
--- a/content/core-developers/debugging-interceptor.html
+++ b/content/core-developers/debugging-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/debugging.html b/content/core-developers/debugging.html
index c15de6862..882600bc1 100644
--- a/content/core-developers/debugging.html
+++ b/content/core-developers/debugging.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/default-properties.html b/content/core-developers/default-properties.html
index 0d600f7e8..d4758b764 100644
--- a/content/core-developers/default-properties.html
+++ b/content/core-developers/default-properties.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -295,6 +295,11 @@ struts.ui.theme.expansion.token=~~~
 ### Sets the default template type. Either ftl, vm, or jsp
 struts.ui.templateSuffix=ftl
 
+### Sets a global flag which will escape html body of Anchor, Submit and Component tag
+### You can control this flag per tag, e.g.: &lt;s:a ... escapeHtmlTag="true"&gt;...&lt;/s:a&gt;
+### and this take precedence over the global flag
+# struts.ui.escapeHtmlBody=true
+
 ### Configuration reloading
 ### This will cause the configuration to reload struts.xml when it is changed
 # struts.configuration.xml.reload=false
@@ -374,7 +379,7 @@ struts.handle.exception=true
 
 ### Applies maximum length allowed on OGNL expressions for security enhancement (optional)
 ###
-### **WARNING**: If developers enable this option (by configuration) they should make sure that they understand the implications of setting 
+### **WARNING**: If developers enable this option (by configuration) they should make sure that they understand the implications of setting
 ###   struts.ognl.expressionMaxLength.  They must choose a value large enough to permit ALL valid OGNL expressions used within the application.
 ###   Values larger than the 200-400 range have diminishing security value (at which point it is really only a "style guard" for long OGNL
 ###   expressions in an application.  Setting a value of null or "" will also disable the feature.
@@ -382,6 +387,12 @@ struts.handle.exception=true
 ### NOTE: The sample line below is *INTENTIONALLY* commented out, as this feature is disabled by default.
 # struts.ognl.expressionMaxLength=256
 
+### Defines which named instance of DateFormatter to use, there are two instances:
+### - simpleDateFormatter (based on SimpleDateFormat)
+### - dateTimeFormatter (based on Java 8 Date/Time API)
+### These formatters are using a slightly different patterns, please check JavaDocs of both and more details is in WW-5016
+struts.date.formatter=dateTimeFormatter
+
 ### END SNIPPET: complete_file</code></pre></figure>
 
 
diff --git a/content/core-developers/default-workflow-interceptor.html b/content/core-developers/default-workflow-interceptor.html
index 0b4b1f555..b6757af07 100644
--- a/content/core-developers/default-workflow-interceptor.html
+++ b/content/core-developers/default-workflow-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/dependency-injection.html b/content/core-developers/dependency-injection.html
index f715569ef..693a8d26f 100644
--- a/content/core-developers/dependency-injection.html
+++ b/content/core-developers/dependency-injection.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/development-mode.html b/content/core-developers/development-mode.html
index 35bc78f95..f9973de27 100644
--- a/content/core-developers/development-mode.html
+++ b/content/core-developers/development-mode.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/dispatcher-listener.html b/content/core-developers/dispatcher-listener.html
index 1d589644e..ef110a77d 100644
--- a/content/core-developers/dispatcher-listener.html
+++ b/content/core-developers/dispatcher-listener.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/dispatcher-result.html b/content/core-developers/dispatcher-result.html
index de0aa654b..b8bcad8f3 100644
--- a/content/core-developers/dispatcher-result.html
+++ b/content/core-developers/dispatcher-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/dispatcher.html b/content/core-developers/dispatcher.html
index 532c1892d..cae334999 100644
--- a/content/core-developers/dispatcher.html
+++ b/content/core-developers/dispatcher.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/double-range-field-validator-annotation.html b/content/core-developers/double-range-field-validator-annotation.html
index 99ccd7e42..e73f27026 100644
--- a/content/core-developers/double-range-field-validator-annotation.html
+++ b/content/core-developers/double-range-field-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/double-validator.html b/content/core-developers/double-validator.html
index f17019baf..8851b155d 100644
--- a/content/core-developers/double-validator.html
+++ b/content/core-developers/double-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/element-annotation.html b/content/core-developers/element-annotation.html
index 4cf095062..2269eb314 100644
--- a/content/core-developers/element-annotation.html
+++ b/content/core-developers/element-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/email-validator-annotation.html b/content/core-developers/email-validator-annotation.html
index 19ec3aec0..130a274d4 100644
--- a/content/core-developers/email-validator-annotation.html
+++ b/content/core-developers/email-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/email-validator.html b/content/core-developers/email-validator.html
index 5895e4ec5..7827c51a5 100644
--- a/content/core-developers/email-validator.html
+++ b/content/core-developers/email-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/exception-configuration.html b/content/core-developers/exception-configuration.html
index 911a18a9f..c10780562 100644
--- a/content/core-developers/exception-configuration.html
+++ b/content/core-developers/exception-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/exception-interceptor.html b/content/core-developers/exception-interceptor.html
index db72e8609..e6746d970 100644
--- a/content/core-developers/exception-interceptor.html
+++ b/content/core-developers/exception-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/execute-and-wait-interceptor.html b/content/core-developers/execute-and-wait-interceptor.html
index 2c3b87110..0b4647e5c 100644
--- a/content/core-developers/execute-and-wait-interceptor.html
+++ b/content/core-developers/execute-and-wait-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/expression-validator-annotation.html b/content/core-developers/expression-validator-annotation.html
index 84da8524a..63d5ff94a 100644
--- a/content/core-developers/expression-validator-annotation.html
+++ b/content/core-developers/expression-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/expression-validator.html b/content/core-developers/expression-validator.html
index 6942c93a7..d2f3c3b3a 100644
--- a/content/core-developers/expression-validator.html
+++ b/content/core-developers/expression-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/fetch-metadata-interceptor.html b/content/core-developers/fetch-metadata-interceptor.html
index d537dae50..c23a51de4 100644
--- a/content/core-developers/fetch-metadata-interceptor.html
+++ b/content/core-developers/fetch-metadata-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/field-expression-validator-annotation.html b/content/core-developers/field-expression-validator-annotation.html
index e7041fee6..b26b40539 100644
--- a/content/core-developers/field-expression-validator-annotation.html
+++ b/content/core-developers/field-expression-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/fieldexpression-validator.html b/content/core-developers/fieldexpression-validator.html
index 6955b7c84..038eb57ed 100644
--- a/content/core-developers/fieldexpression-validator.html
+++ b/content/core-developers/fieldexpression-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/file-upload-interceptor.html b/content/core-developers/file-upload-interceptor.html
index a9f41723b..625d377dd 100644
--- a/content/core-developers/file-upload-interceptor.html
+++ b/content/core-developers/file-upload-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/file-upload.html b/content/core-developers/file-upload.html
index 9afb04b1b..4c6af77f3 100644
--- a/content/core-developers/file-upload.html
+++ b/content/core-developers/file-upload.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -159,17 +159,18 @@
   </li>
 </ul>
 
-<p>The Struts 2 framework provides built-in support for processing file uploads that conform to <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a>, 
-“Form-based File Upload in HTML”. When correctly configured the framework will pass uploaded file(s) into your Action class. 
-Support for individual and multiple file uploads are provided. When a file is uploaded it will typically be stored in a temporary directory. 
-Uploaded files should be processed or moved by your Action class to ensure the data is not lost. Be aware that servers may have a security 
-policy in place that prohibits you from writing to directories other than the temporary directory and the directories that belong to your 
-web application.</p>
+<p>The Struts 2 framework provides built-in support for processing file uploads that conform
+to <a href="http://www.ietf.org/rfc/rfc1867.txt">RFC 1867</a>,
+“Form-based File Upload in HTML”. When correctly configured the framework will pass uploaded file(s) into your Action
+class. Support for individual and multiple file uploads are provided. When a file is uploaded it will typically be
+stored in a temporary directory. Uploaded files should be processed or moved by your Action class to ensure the data is
+not lost. Be aware that servers may have a security policy in place that prohibits you from writing to directories other
+than the temporary directory and the directories that belong to your web application.</p>
 
 <h2 id="dependencies">Dependencies</h2>
 
-<p>The Struts 2 framework leverages add-on libraries to handle the parsing of uploaded files. These libraries are not included in the Struts 
-distribution, you must add them into your project. The libraries needed are:</p>
+<p>The Struts 2 framework leverages add-on libraries to handle the parsing of uploaded files. These libraries are not
+included in the Struts distribution, you must add them into your project. The libraries needed are:</p>
 
 <table>
   <thead>
@@ -231,9 +232,9 @@ distribution, you must add them into your project. The libraries needed are:</p>
 
 <h2 id="basic-usage">Basic Usage</h2>
 
-<p>The <code class="highlighter-rouge">org.apache.struts2.interceptor.FileUploadInterceptor</code> class is included as part of the <code class="highlighter-rouge">defaultStack</code>. As long as the required libraries 
-are added to your project you will be able to take advantage of of the Struts 2 fileUpload capability. Configure an Action mapping for your 
-Action class as you typically would.</p>
+<p>The <code class="highlighter-rouge">org.apache.struts2.interceptor.FileUploadInterceptor</code> class is included as part of the <code class="highlighter-rouge">defaultStack</code>. As long as
+the required libraries are added to your project you will be able to take advantage of of the Struts 2 fileUpload
+capability. Configure an Action mapping for your Action class as you typically would.</p>
 
 <h3 id="example-action-mapping">Example action mapping:</h3>
 
@@ -243,55 +244,57 @@ Action class as you typically would.</p>
 
 </code></pre></div></div>
 
-<p>A form must be create with a form field of type file, <code class="highlighter-rouge">&lt;INPUT type="file" name="upload"&gt;</code>. The form used to upload the file must have its 
-encoding type set to <code class="highlighter-rouge">multipart/form-data</code>, <code class="highlighter-rouge">&lt;form action="doUpload" enctype="multipart/form-data" method="post"&gt;</code>. The standard procedure 
-for adding these elements is by using the Struts 2 tag libraries as shown in the following example:</p>
+<p>A form must be create with a form field of type file, <code class="highlighter-rouge">&lt;INPUT type="file" name="upload"&gt;</code>. The form used to upload the
+file must have its encoding type set to <code class="highlighter-rouge">multipart/form-data</code>
+, <code class="highlighter-rouge">&lt;form action="doUpload" enctype="multipart/form-data" method="post"&gt;</code>. The standard procedure for adding these
+elements is by using the Struts 2 tag libraries as shown in the following example:</p>
 
 <h3 id="example-jsp-form-tags">Example JSP form tags:</h3>
 
-<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code>   <span class="nt">&lt;s:form</span> <span class="na">action=</span><span class="s">"doUpload"</span> <span class="na">method=</span><span class="s">"post"</span> <span class="na">enctype=</span><span class="s">"multipart/form-data"</span><span class="nt">&gt;</span>
-       <span class="nt">&lt;s:file</span> <span class="na">name=</span><span class="s">"upload"</span> <span class="na">label=</span><span class="s">"File"</span><span class="nt">/&gt;</span>
-       <span class="nt">&lt;s:submit/&gt;</span>
-   <span class="nt">&lt;/s:form&gt;</span>
+<div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;s:form</span> <span class="na">action=</span><span class="s">"doUpload"</span> <span class="na">method=</span><span class="s">"post"</span> <span class="na">enctype=</span><span class="s">"multipart/form-data"</span><span class="nt">&gt;</span>
+    <span class="nt">&lt;s:file</span> <span class="na">name=</span><span class="s">"upload"</span> <span class="na">label=</span><span class="s">"File"</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;s:submit/&gt;</span>
+<span class="nt">&lt;/s:form&gt;</span>
 </code></pre></div></div>
 
-<p>The fileUpload interceptor will use setter injection to insert the uploaded file and related data into your Action class. For a form field 
-named <code class="highlighter-rouge">upload</code> you would provide the three setter methods shown in the following example:</p>
+<p>The fileUpload interceptor will use setter injection to insert the uploaded file and related data into your Action
+class. For a form field named <code class="highlighter-rouge">upload</code> you would provide the three setter methods shown in the following example:</p>
 
 <h3 id="example-action-class">Example Action class:</h3>
 
 <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kn">package</span> <span class="n">com</span><span class="o">.</span><span class="na">example</span><span class="o">;</span>
 
-   <span class="kn">import</span> <span class="nn">java.io.File</span><span class="o">;</span>
-   <span class="kn">import</span> <span class="nn">com.opensymphony.xwork2.ActionSupport</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">java.io.File</span><span class="o">;</span>
 
-   <span class="kd">public</span> <span class="kd">class</span> <span class="nc">UploadAction</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span>
-      <span class="kd">private</span> <span class="n">File</span> <span class="n">file</span><span class="o">;</span>
-      <span class="kd">private</span> <span class="n">String</span> <span class="n">contentType</span><span class="o">;</span>
-      <span class="kd">private</span> <span class="n">String</span> <span class="n">filename</span><span class="o">;</span>
+<span class="kn">import</span> <span class="nn">com.opensymphony.xwork2.ActionSupport</span><span class="o">;</span>
 
-      <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUpload</span><span class="o">(</span><span class="n">File</span> <span class="n">file</span><span class="o">)</span> <span class="o">{</span>
-         <span class="k">this</span><span class="o">.</span><span class="na">file</span> <span class="o">=</span> <span class="n">file</span><span class="o">;</span>
-      <span class="o">}</span>
+<span class="kd">public</span> <span class="kd">class</span> <span class="nc">UploadAction</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span>
+    <span class="kd">private</span> <span class="n">File</span> <span class="n">file</span><span class="o">;</span>
+    <span class="kd">private</span> <span class="n">String</span> <span class="n">contentType</span><span class="o">;</span>
+    <span class="kd">private</span> <span class="n">String</span> <span class="n">filename</span><span class="o">;</span>
 
-      <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadContentType</span><span class="o">(</span><span class="n">String</span> <span class="n">contentType</span><span class="o">)</span> <span class="o">{</span>
-         <span class="k">this</span><span class="o">.</span><span class="na">contentType</span> <span class="o">=</span> <span class="n">contentType</span><span class="o">;</span>
-      <span class="o">}</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUpload</span><span class="o">(</span><span class="n">File</span> <span class="n">file</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">this</span><span class="o">.</span><span class="na">file</span> <span class="o">=</span> <span class="n">file</span><span class="o">;</span>
+    <span class="o">}</span>
 
-      <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadFileName</span><span class="o">(</span><span class="n">String</span> <span class="n">filename</span><span class="o">)</span> <span class="o">{</span>
-         <span class="k">this</span><span class="o">.</span><span class="na">filename</span> <span class="o">=</span> <span class="n">filename</span><span class="o">;</span>
-      <span class="o">}</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadContentType</span><span class="o">(</span><span class="n">String</span> <span class="n">contentType</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">this</span><span class="o">.</span><span class="na">contentType</span> <span class="o">=</span> <span class="n">contentType</span><span class="o">;</span>
+    <span class="o">}</span>
 
-      <span class="kd">public</span> <span class="n">String</span> <span class="nf">execute</span><span class="o">()</span> <span class="o">{</span>
-         <span class="c1">//...</span>
-         <span class="k">return</span> <span class="n">SUCCESS</span><span class="o">;</span>
-      <span class="o">}</span>
- <span class="o">}</span>
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadFileName</span><span class="o">(</span><span class="n">String</span> <span class="n">filename</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">this</span><span class="o">.</span><span class="na">filename</span> <span class="o">=</span> <span class="n">filename</span><span class="o">;</span>
+    <span class="o">}</span>
 
+    <span class="kd">public</span> <span class="n">String</span> <span class="nf">execute</span><span class="o">()</span> <span class="o">{</span>
+        <span class="c1">//...</span>
+        <span class="k">return</span> <span class="n">SUCCESS</span><span class="o">;</span>
+    <span class="o">}</span>
+<span class="o">}</span>
 </code></pre></div></div>
 
-<p>The purpose of each one of these methods is described in the table below. Notice that if you have multiple file form elements with different 
-names you would be required to have another corresponding set of these methods for each file uploaded.</p>
+<p>The purpose of each one of these methods is described in the table below. Notice that if you have multiple file form
+elements with different names you would be required to have another corresponding set of these methods for each file
+uploaded.</p>
 
 <table>
   <thead>
@@ -318,66 +321,73 @@ names you would be required to have another corresponding set of these methods f
 
 <h2 id="uploading-multiple-files">Uploading Multiple Files</h2>
 
-<p>As mentioned in the previous section one technique for uploading multiple files would be to simply have multiple form input elements of type 
-file all with different names. This would require a number of setter methods that was equal to 3 times the number of files being uploaded. 
-Another option is to use Arrays or java.util.Lists. The following examples are taken from the Showcase example application that is part 
-sample applications you can download at <a href="http://struts.apache.org/download.cgi">http://struts.apache.org/download.cgi</a>. For the Action mapping 
-details see <code class="highlighter-rouge">struts-fileupload.xml</code> in the sample application download.</p>
+<p>As mentioned in the previous section one technique for uploading multiple files would be to simply have multiple form
+input elements of type file all with different names. This would require a number of setter methods that was equal to 3
+times the number of files being uploaded. Another option is to use Arrays or java.util.Lists. The following examples are
+taken from the Showcase example application that is part sample applications you can download
+at <a href="http://struts.apache.org/download.cgi">http://struts.apache.org/download.cgi</a>. For the Action mapping details
+see <code class="highlighter-rouge">struts-fileupload.xml</code> in the sample application download.</p>
 
 <h3 id="uploading-multiple-files-using-arrays">Uploading Multiple Files using Arrays</h3>
 
 <p><code class="highlighter-rouge">multipleUploadUsingArray.jsp</code> Notice all file input types have the same name.</p>
 
-<pre><code class="language-jsp">&lt;s:form action="doMultipleUploadUsingArray" method="POST" enctype="multipart/form-data"&gt;
-  &lt;s:file label="File (1)" name="upload" /&gt;
-  &lt;s:file label="File (2)" name="upload" /&gt;
-  &lt;s:file label="FIle (3)" name="upload" /&gt;
-  &lt;s:submit cssClass="btn btn-primary"/&gt;
-&lt;/s:form&gt;
-</code></pre>
+<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;s:form</span> <span class="na">action=</span><span class="s">"doMultipleUploadUsingArray"</span> <span class="na">method=</span><span class="s">"POST"</span> <span class="na">enctype=</span><span class="s">"multipart/form-data"</span><span class="nt">&gt;</span>
+  <span class="nt">&lt;s:file</span> <span class="na">label=</span><span class="s">"File (1)"</span> <span class="na">name=</span><span class="s">"upload"</span> <span class="nt">/&gt;</span>
+  <span class="nt">&lt;s:file</span> <span class="na">label=</span><span class="s">"File (2)"</span> <span class="na">name=</span><span class="s">"upload"</span> <span class="nt">/&gt;</span>
+  <span class="nt">&lt;s:file</span> <span class="na">label=</span><span class="s">"FIle (3)"</span> <span class="na">name=</span><span class="s">"upload"</span> <span class="nt">/&gt;</span>
+  <span class="nt">&lt;s:submit</span> <span class="na">cssClass=</span><span class="s">"btn btn-primary"</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;/s:form&gt;</span>
+</code></pre></div></div>
 
 <p><code class="highlighter-rouge">MultipleFileUploadUsingArrayAction.java</code></p>
 
 <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">MultipleFileUploadUsingArrayAction</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span>
-	<span class="kd">private</span> <span class="n">File</span><span class="o">[]</span> <span class="n">uploads</span><span class="o">;</span>
-	<span class="kd">private</span> <span class="n">String</span><span class="o">[]</span> <span class="n">uploadFileNames</span><span class="o">;</span>
-	<span class="kd">private</span> <span class="n">String</span><span class="o">[]</span> <span class="n">uploadContentTypes</span><span class="o">;</span>
-
-	<span class="kd">public</span> <span class="n">String</span> <span class="nf">upload</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
-		<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"\n\n upload2"</span><span class="o">);</span>
-		<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"files:"</span><span class="o">);</span>
-		<span class="k">for</span> <span class="o">(</span><span class="n">File</span> <span class="n">u</span> <span class="o">:</span> <span class="n">uploads</span><span class="o">)</span> <span class="o">{</span>
-			<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">u</span> <span class="o">+</span> <span class="s">"\t"</span> <span class="o">+</span> <span class="n">u</span><span class="o">.</span><span class="na">length</span><span class="o">());</span>
-		<span class="o">}</span>
-		<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"filenames:"</span><span class="o">);</span>
-		<span class="k">for</span> <span class="o">(</span><span class="n">String</span> <span class="n">n</span> <span class="o">:</span> <span class="n">uploadFileNames</span><span class="o">)</span> <span class="o">{</span>
-			<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">n</span><span class="o">);</span>
-		<span class="o">}</span>
-		<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"content types:"</span><span class="o">);</span>
-		<span class="k">for</span> <span class="o">(</span><span class="n">String</span> <span class="n">c</span> <span class="o">:</span> <span class="n">uploadContentTypes</span><span class="o">)</span> <span class="o">{</span>
-			<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">c</span><span class="o">);</span>
-		<span class="o">}</span>
-		<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"\n\n"</span><span class="o">);</span>
-		<span class="k">return</span> <span class="n">SUCCESS</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="n">File</span><span class="o">[]</span> <span class="nf">getUpload</span><span class="o">()</span> <span class="o">{</span>
-		<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploads</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUpload</span><span class="o">(</span><span class="n">File</span><span class="o">[]</span> <span class="n">upload</span><span class="o">)</span> <span class="o">{</span>
-		<span class="k">this</span><span class="o">.</span><span class="na">uploads</span> <span class="o">=</span> <span class="n">upload</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="n">String</span><span class="o">[]</span> <span class="nf">getUploadFileName</span><span class="o">()</span> <span class="o">{</span>
-		<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploadFileNames</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadFileName</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">uploadFileName</span><span class="o">)</span> <span class="o">{</span>
-		<span class="k">this</span><span class="o">.</span><span class="na">uploadFileNames</span> <span class="o">=</span> <span class="n">uploadFileName</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="n">String</span><span class="o">[]</span> <span class="nf">getUploadContentType</span><span class="o">()</span> <span class="o">{</span>
-		<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploadContentTypes</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadContentType</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">uploadContentType</span><span class="o">)</span> <span class="o">{</span>
-		<span class="k">this</span><span class="o">.</span><span class="na">uploadContentTypes</span> <span class="o">=</span> <span class="n">uploadContentType</span><span class="o">;</span>
-	<span class="o">}</span>
+    <span class="kd">private</span> <span class="n">File</span><span class="o">[]</span> <span class="n">uploads</span><span class="o">;</span>
+    <span class="kd">private</span> <span class="n">String</span><span class="o">[]</span> <span class="n">uploadFileNames</span><span class="o">;</span>
+    <span class="kd">private</span> <span class="n">String</span><span class="o">[]</span> <span class="n">uploadContentTypes</span><span class="o">;</span>
+
+    <span class="kd">public</span> <span class="n">String</span> <span class="nf">upload</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"\n\n upload2"</span><span class="o">);</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"files:"</span><span class="o">);</span>
+        <span class="k">for</span> <span class="o">(</span><span class="n">File</span> <span class="n">u</span> <span class="o">:</span> <span class="n">uploads</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">u</span> <span class="o">+</span> <span class="s">"\t"</span> <span class="o">+</span> <span class="n">u</span><span class="o">.</span><span class="na">length</span><span class="o">());</span>
+        <span class="o">}</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"filenames:"</span><span class="o">);</span>
+        <span class="k">for</span> <span class="o">(</span><span class="n">String</span> <span class="n">n</span> <span class="o">:</span> <span class="n">uploadFileNames</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">n</span><span class="o">);</span>
+        <span class="o">}</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"content types:"</span><span class="o">);</span>
+        <span class="k">for</span> <span class="o">(</span><span class="n">String</span> <span class="n">c</span> <span class="o">:</span> <span class="n">uploadContentTypes</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">c</span><span class="o">);</span>
+        <span class="o">}</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"\n\n"</span><span class="o">);</span>
+        <span class="k">return</span> <span class="n">SUCCESS</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">File</span><span class="o">[]</span> <span class="nf">getUpload</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploads</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUpload</span><span class="o">(</span><span class="n">File</span><span class="o">[]</span> <span class="n">upload</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">this</span><span class="o">.</span><span class="na">uploads</span> <span class="o">=</span> <span class="n">upload</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">String</span><span class="o">[]</span> <span class="nf">getUploadFileName</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploadFileNames</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadFileName</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">uploadFileName</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">this</span><span class="o">.</span><span class="na">uploadFileNames</span> <span class="o">=</span> <span class="n">uploadFileName</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">String</span><span class="o">[]</span> <span class="nf">getUploadContentType</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploadContentTypes</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadContentType</span><span class="o">(</span><span class="n">String</span><span class="o">[]</span> <span class="n">uploadContentType</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">this</span><span class="o">.</span><span class="na">uploadContentTypes</span> <span class="o">=</span> <span class="n">uploadContentType</span><span class="o">;</span>
+    <span class="o">}</span>
 <span class="o">}</span>
 </code></pre></div></div>
 
@@ -385,63 +395,69 @@ details see <code class="highlighter-rouge">struts-fileupload.xml</code> in the
 
 <p><code class="highlighter-rouge">multipleUploadUsingList.jsp</code> Notice all file input types have the same name.</p>
 
-<pre><code class="language-jsp">&lt;s:form action="doMultipleUploadUsingList" method="POST" enctype="multipart/form-data"&gt;
-  &lt;s:file label="File (1)" name="upload" /&gt;
-  &lt;s:file label="File (2)" name="upload" /&gt;
-  &lt;s:file label="FIle (3)" name="upload" /&gt;
-  &lt;s:submit cssClass="btn btn-primary"/&gt;
-&lt;/s:form&gt;
-</code></pre>
+<div class="language-html highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;s:form</span> <span class="na">action=</span><span class="s">"doMultipleUploadUsingList"</span> <span class="na">method=</span><span class="s">"POST"</span> <span class="na">enctype=</span><span class="s">"multipart/form-data"</span><span class="nt">&gt;</span>
+  <span class="nt">&lt;s:file</span> <span class="na">label=</span><span class="s">"File (1)"</span> <span class="na">name=</span><span class="s">"upload"</span> <span class="nt">/&gt;</span>
+  <span class="nt">&lt;s:file</span> <span class="na">label=</span><span class="s">"File (2)"</span> <span class="na">name=</span><span class="s">"upload"</span> <span class="nt">/&gt;</span>
+  <span class="nt">&lt;s:file</span> <span class="na">label=</span><span class="s">"FIle (3)"</span> <span class="na">name=</span><span class="s">"upload"</span> <span class="nt">/&gt;</span>
+  <span class="nt">&lt;s:submit</span> <span class="na">cssClass=</span><span class="s">"btn btn-primary"</span><span class="nt">/&gt;</span>
+<span class="nt">&lt;/s:form&gt;</span>
+</code></pre></div></div>
 
 <p><code class="highlighter-rouge">MultipleFileUploadUsingListAction.java</code></p>
 
 <div class="language-java highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="kd">public</span> <span class="kd">class</span> <span class="nc">MultipleFileUploadUsingListAction</span> <span class="kd">extends</span> <span class="n">ActionSupport</span> <span class="o">{</span>
-	<span class="kd">private</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">File</span><span class="o">&gt;</span> <span class="n">uploads</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">File</span><span class="o">&gt;();</span>
-	<span class="kd">private</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">uploadFileNames</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;();</span>
-	<span class="kd">private</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">uploadContentTypes</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;();</span>
-
-	<span class="kd">public</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">File</span><span class="o">&gt;</span> <span class="nf">getUpload</span><span class="o">()</span> <span class="o">{</span>
-		<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploads</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUpload</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">File</span><span class="o">&gt;</span> <span class="n">uploads</span><span class="o">)</span> <span class="o">{</span>
-		<span class="k">this</span><span class="o">.</span><span class="na">uploads</span> <span class="o">=</span> <span class="n">uploads</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="nf">getUploadFileName</span><span class="o">()</span> <span class="o">{</span>
-		<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploadFileNames</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadFileName</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">uploadFileNames</span><span class="o">)</span> <span class="o">{</span>
-		<span class="k">this</span><span class="o">.</span><span class="na">uploadFileNames</span> <span class="o">=</span> <span class="n">uploadFileNames</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="nf">getUploadContentType</span><span class="o">()</span> <span class="o">{</span>
-		<span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploadContentTypes</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadContentType</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">contentTypes</span><span class="o">)</span> <span class="o">{</span>
-		<span class="k">this</span><span class="o">.</span><span class="na">uploadContentTypes</span> <span class="o">=</span> <span class="n">contentTypes</span><span class="o">;</span>
-	<span class="o">}</span>
-	<span class="kd">public</span> <span class="n">String</span> <span class="nf">upload</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
-		<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"\n\n upload1"</span><span class="o">);</span>
-		<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"files:"</span><span class="o">);</span>
-		<span class="k">for</span> <span class="o">(</span><span class="n">File</span> <span class="n">u</span> <span class="o">:</span> <span class="n">uploads</span><span class="o">)</span> <span class="o">{</span>
-			<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">u</span> <span class="o">+</span> <span class="s">"\t"</span> <span class="o">+</span> <span class="n">u</span><span class="o">.</span><span class="na">length</span><span class="o">());</span>
-		<span class="o">}</span>
-		<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"filenames:"</span><span class="o">);</span>
-		<span class="k">for</span> <span class="o">(</span><span class="n">String</span> <span class="n">n</span> <span class="o">:</span> <span class="n">uploadFileNames</span><span class="o">)</span> <span class="o">{</span>
-			<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">n</span><span class="o">);</span>
-		<span class="o">}</span>
-		<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"content types:"</span><span class="o">);</span>
-		<span class="k">for</span> <span class="o">(</span><span class="n">String</span> <span class="n">c</span> <span class="o">:</span> <span class="n">uploadContentTypes</span><span class="o">)</span> <span class="o">{</span>
-			<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">c</span><span class="o">);</span>
-		<span class="o">}</span>
-		<span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"\n\n"</span><span class="o">);</span>
-		<span class="k">return</span> <span class="n">SUCCESS</span><span class="o">;</span>
-	<span class="o">}</span>
+    <span class="kd">private</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">File</span><span class="o">&gt;</span> <span class="n">uploads</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">File</span><span class="o">&gt;();</span>
+    <span class="kd">private</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">uploadFileNames</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;();</span>
+    <span class="kd">private</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">uploadContentTypes</span> <span class="o">=</span> <span class="k">new</span> <span class="n">ArrayList</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;();</span>
+
+    <span class="kd">public</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">File</span><span class="o">&gt;</span> <span class="nf">getUpload</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploads</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUpload</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">File</span><span class="o">&gt;</span> <span class="n">uploads</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">this</span><span class="o">.</span><span class="na">uploads</span> <span class="o">=</span> <span class="n">uploads</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="nf">getUploadFileName</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploadFileNames</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadFileName</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">uploadFileNames</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">this</span><span class="o">.</span><span class="na">uploadFileNames</span> <span class="o">=</span> <span class="n">uploadFileNames</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="nf">getUploadContentType</span><span class="o">()</span> <span class="o">{</span>
+        <span class="k">return</span> <span class="k">this</span><span class="o">.</span><span class="na">uploadContentTypes</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="kt">void</span> <span class="nf">setUploadContentType</span><span class="o">(</span><span class="n">List</span><span class="o">&lt;</span><span class="n">String</span><span class="o">&gt;</span> <span class="n">contentTypes</span><span class="o">)</span> <span class="o">{</span>
+        <span class="k">this</span><span class="o">.</span><span class="na">uploadContentTypes</span> <span class="o">=</span> <span class="n">contentTypes</span><span class="o">;</span>
+    <span class="o">}</span>
+
+    <span class="kd">public</span> <span class="n">String</span> <span class="nf">upload</span><span class="o">()</span> <span class="kd">throws</span> <span class="n">Exception</span> <span class="o">{</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"\n\n upload1"</span><span class="o">);</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"files:"</span><span class="o">);</span>
+        <span class="k">for</span> <span class="o">(</span><span class="n">File</span> <span class="n">u</span> <span class="o">:</span> <span class="n">uploads</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">u</span> <span class="o">+</span> <span class="s">"\t"</span> <span class="o">+</span> <span class="n">u</span><span class="o">.</span><span class="na">length</span><span class="o">());</span>
+        <span class="o">}</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"filenames:"</span><span class="o">);</span>
+        <span class="k">for</span> <span class="o">(</span><span class="n">String</span> <span class="n">n</span> <span class="o">:</span> <span class="n">uploadFileNames</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">n</span><span class="o">);</span>
+        <span class="o">}</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"content types:"</span><span class="o">);</span>
+        <span class="k">for</span> <span class="o">(</span><span class="n">String</span> <span class="n">c</span> <span class="o">:</span> <span class="n">uploadContentTypes</span><span class="o">)</span> <span class="o">{</span>
+            <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"*** "</span> <span class="o">+</span> <span class="n">c</span><span class="o">);</span>
+        <span class="o">}</span>
+        <span class="n">System</span><span class="o">.</span><span class="na">out</span><span class="o">.</span><span class="na">println</span><span class="o">(</span><span class="s">"\n\n"</span><span class="o">);</span>
+        <span class="k">return</span> <span class="n">SUCCESS</span><span class="o">;</span>
+    <span class="o">}</span>
 <span class="o">}</span>
 </code></pre></div></div>
 
 <h2 id="advanced-configuration">Advanced Configuration</h2>
 
-<p>The Struts 2 <code class="highlighter-rouge">default.properties</code> file defines several settings that affect the behavior of file uploading. You may find in necessary 
-to change these values. The names and default values are:</p>
+<p>The Struts 2 <code class="highlighter-rouge">default.properties</code> file defines several settings that affect the behavior of file uploading. You may find
+in necessary to change these values. The names and default values are:</p>
 
 <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>struts.multipart.parser=jakarta
 struts.multipart.saveDir=
@@ -449,29 +465,30 @@ struts.multipart.maxSize=2097152
 </code></pre></div></div>
 
 <blockquote>
-  <p>Please remember that the <code class="highlighter-rouge">struts.multipart.maxSize</code> is the size limit of the whole request, which means when you uploading multiple files, 
+  <p>Please remember that the <code class="highlighter-rouge">struts.multipart.maxSize</code> is the size limit of the whole request, which means when you uploading multiple files,
 the sum of their size must be below the <code class="highlighter-rouge">struts.multipart.maxSize</code>!</p>
 </blockquote>
 
 <p>In order to change theses settings you define a constant in your applications <code class="highlighter-rouge">struts.xml</code> file like so:</p>
 
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span>
-<span class="cp">&lt;!DOCTYPE struts PUBLIC 
-	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
-	"http://struts.apache.org/dtds/struts-2.0.dtd"&gt;</span>
+<span class="cp">&lt;!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
+        "http://struts.apache.org/dtds/struts-2.0.dtd"&gt;</span>
 <span class="nt">&lt;struts&gt;</span>
-    <span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.multipart.maxSize"</span> <span class="na">value=</span><span class="s">"1000000"</span> <span class="nt">/&gt;</span>
+    <span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.multipart.maxSize"</span> <span class="na">value=</span><span class="s">"1000000"</span><span class="nt">/&gt;</span>
     ...
 <span class="nt">&lt;/struts&gt;</span>
 </code></pre></div></div>
 
-<p>Additionally the <code class="highlighter-rouge">fileUpload</code> interceptor has settings that can be put in place for individual action mappings by customizing your interceptor stack.</p>
+<p>Additionally the <code class="highlighter-rouge">fileUpload</code> interceptor has settings that can be put in place for individual action mappings by
+customizing your interceptor stack.</p>
 
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">"doUpload"</span> <span class="na">class=</span><span class="s">"com.example.UploadAction"</span><span class="nt">&gt;</span>
     <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"basicStack"</span><span class="nt">/&gt;</span>
     <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"fileUpload"</span><span class="nt">&gt;</span>
         <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"allowedTypes"</span><span class="nt">&gt;</span>text/plain<span class="nt">&lt;/param&gt;</span>
-    <span class="nt">&lt;/interceptor-ref&gt;</span> 
+    <span class="nt">&lt;/interceptor-ref&gt;</span>
     <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"validation"</span><span class="nt">/&gt;</span>
     <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"workflow"</span><span class="nt">/&gt;</span>
 
@@ -481,25 +498,26 @@ the sum of their size must be below the <code class="highlighter-rouge">struts.m
 
 <h3 id="file-size-limits">File Size Limits</h3>
 
-<p>There are two separate file size limits. First is <code class="highlighter-rouge">struts.multipart.maxSize</code> which comes from the Struts 2 <code class="highlighter-rouge">default.properties</code> file. 
-This setting exists for security reasons to prohibit a malicious user from uploading extremely large files to file up your servers disk space. 
-This setting defaults to approximately 2 megabytes and should be adjusted to the maximum size file (2 gigs max) that your will need the framework 
-to receive. If you are uploading more than one file on a form the <code class="highlighter-rouge">struts.multipart.maxSize</code> applies to the combined total, not the individual 
-file sizes. The other setting, <code class="highlighter-rouge">maximumSize</code>, is an interceptor setting that is used to ensure a particular Action does not receive a file 
-that is too large. Notice the locations of both settings in the following example:</p>
+<p>There are two separate file size limits. First is <code class="highlighter-rouge">struts.multipart.maxSize</code> which comes from the Struts
+2 <code class="highlighter-rouge">default.properties</code> file. This setting exists for security reasons to prohibit a malicious user from uploading
+extremely large files to file up your servers disk space. This setting defaults to approximately 2 megabytes and should
+be adjusted to the maximum size file (2 gigs max) that your will need the framework to receive. If you are uploading
+more than one file on a form the <code class="highlighter-rouge">struts.multipart.maxSize</code> applies to the combined total, not the individual file
+sizes. The other setting, <code class="highlighter-rouge">maximumSize</code>, is an interceptor setting that is used to ensure a particular Action does not
+receive a file that is too large. Notice the locations of both settings in the following example:</p>
 
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="cp">&lt;?xml version="1.0" encoding="UTF-8"?&gt;</span>
-<span class="cp">&lt;!DOCTYPE struts PUBLIC 
-	"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN" 
-	"http://struts.apache.org/dtds/struts-2.0.dtd"&gt;</span>
+<span class="cp">&lt;!DOCTYPE struts PUBLIC
+        "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
+        "http://struts.apache.org/dtds/struts-2.0.dtd"&gt;</span>
 <span class="nt">&lt;struts&gt;</span>
-    <span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.multipart.maxSize"</span> <span class="na">value=</span><span class="s">"1000000"</span> <span class="nt">/&gt;</span>
-    
+    <span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.multipart.maxSize"</span> <span class="na">value=</span><span class="s">"1000000"</span><span class="nt">/&gt;</span>
+
     <span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">"doUpload"</span> <span class="na">class=</span><span class="s">"com.example.UploadAction"</span><span class="nt">&gt;</span>
         <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"basicStack"</span><span class="nt">/&gt;</span>
         <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"fileUpload"</span><span class="nt">&gt;</span>
             <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"maximumSize"</span><span class="nt">&gt;</span>500000<span class="nt">&lt;/param&gt;</span>
-        <span class="nt">&lt;/interceptor-ref&gt;</span> 
+        <span class="nt">&lt;/interceptor-ref&gt;</span>
         <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"validation"</span><span class="nt">/&gt;</span>
         <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"workflow"</span><span class="nt">/&gt;</span>
 
@@ -511,14 +529,15 @@ that is too large. Notice the locations of both settings in the following exampl
 
 <h3 id="file-types">File Types</h3>
 
-<p>There are two ways to limit the uploaded file type, decoratively and programmatically. To decoratively limit the file type a comma separated 
-list of allowedTypes can be specified as a fileUpload interceptor param as shown in the following example:</p>
+<p>There are two ways to limit the uploaded file type, decoratively and programmatically. To decoratively limit the file
+type a comma separated list of allowedTypes can be specified as a fileUpload interceptor param as shown in the following
+example:</p>
 
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;action</span> <span class="na">name=</span><span class="s">"doUpload"</span> <span class="na">class=</span><span class="s">"com.example.UploadAction"</span><span class="nt">&gt;</span>
     <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"basicStack"</span><span class="nt">/&gt;</span>
     <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"fileUpload"</span><span class="nt">&gt;</span>
         <span class="nt">&lt;param</span> <span class="na">name=</span><span class="s">"allowedTypes"</span><span class="nt">&gt;</span>image/jpeg,image/gif<span class="nt">&lt;/param&gt;</span>
-    <span class="nt">&lt;/interceptor-ref&gt;</span> 
+    <span class="nt">&lt;/interceptor-ref&gt;</span>
     <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"validation"</span><span class="nt">/&gt;</span>
     <span class="nt">&lt;interceptor-ref</span> <span class="na">name=</span><span class="s">"workflow"</span><span class="nt">/&gt;</span>
 
@@ -526,16 +545,18 @@ list of allowedTypes can be specified as a fileUpload interceptor param as shown
 <span class="nt">&lt;/action&gt;</span>
 </code></pre></div></div>
 
-<p>When the uploaded file type does not match one of the MIME types specified a field error will be created as described in the next section 
-entitled Error Messages. Programmatically limiting the file type means using the information passed in to your Action class via 
-the <code class="highlighter-rouge">setXContentType(String contentType)</code> method. The benefit to this type of approach would be that it’s more flexible and no interceptor 
-configuration would be needed if file sizes are keep under 2 megs.</p>
+<p>When the uploaded file type does not match one of the MIME types specified a field error will be created as described in
+the next section entitled Error Messages. Programmatically limiting the file type means using the information passed in
+to your Action class via the <code class="highlighter-rouge">setXContentType(String contentType)</code> method. The benefit to this type of approach would be
+that it’s more flexible and no interceptor configuration would be needed if file sizes are keep under 2 megs.</p>
 
 <h3 id="error-messages">Error Messages</h3>
 
-<p>If an error occurs several field errors will be added assuming that the action implements <code class="highlighter-rouge">com.opensymphony.xwork2.ValidationAware</code> 
-or extends <code class="highlighter-rouge">com.opensymphony.xwork2.ActionSupport</code>. These error messages are based on several i18n values stored in struts-messages.properties, 
-a default i18n file processed for all i18n requests. You can override the text of these messages by providing text for the following keys:</p>
+<p>If an error occurs several field errors will be added assuming that the action
+implements <code class="highlighter-rouge">com.opensymphony.xwork2.ValidationAware</code>
+or extends <code class="highlighter-rouge">com.opensymphony.xwork2.ActionSupport</code>. These error messages are based on several i18n values stored in
+struts-messages.properties, a default i18n file processed for all i18n requests. You can override the text of these
+messages by providing text for the following keys:</p>
 
 <table>
   <thead>
@@ -574,22 +595,25 @@ a default i18n file processed for all i18n requests. You can override the text o
 
 <h3 id="temporary-directories">Temporary Directories</h3>
 
-<p>All uploaded files are saved to a temporary directory by the framework before being passed in to an Action. Depending on the allowed file 
-sizes it may be necessary to have the framework store these temporary files in an alternate location. To do this change <code class="highlighter-rouge">struts.multipart.saveDir</code> 
-to the directory where the uploaded files will be placed. If this property is not set it defaults to <code class="highlighter-rouge">javax.servlet.context.tempdir</code>. 
-Keep in mind that on some operating systems, like Solaris, <code class="highlighter-rouge">/tmp</code> is memory based and files stored in that directory would consume 
-an amount of RAM approximately equal to the size of the uploaded file.</p>
+<p>All uploaded files are saved to a temporary directory by the framework before being passed in to an Action. Depending on
+the allowed file sizes it may be necessary to have the framework store these temporary files in an alternate location.
+To do this change <code class="highlighter-rouge">struts.multipart.saveDir</code>
+to the directory where the uploaded files will be placed. If this property is not set it defaults
+to <code class="highlighter-rouge">javax.servlet.context.tempdir</code>. Keep in mind that on some operating systems, like Solaris, <code class="highlighter-rouge">/tmp</code> is memory based
+and files stored in that directory would consume an amount of RAM approximately equal to the size of the uploaded file.</p>
 
 <h3 id="alternate-libraries">Alternate Libraries</h3>
 
-<p>The <code class="highlighter-rouge">struts.multipart.parser</code> used by the fileUpload interceptor to handle HTTP POST requests, encoded using the MIME-type <code class="highlighter-rouge">multipart/form-data</code>, 
-can be changed out. Currently there are two choices, jakarta and pell. The jakarta parser is a standard part of the Struts 2 framework needing 
-only its required libraries added to a project. The pell parser uses Jason Pell’s multipart parser instead of the Commons-FileUpload library. 
-The pell parser is a Struts 2 plugin, for more details see: <a href="../plugins/pell/">Pell multipart plugin</a>. There was a third alternative, cos, but it was removed 
-due to licensing incompatibilities.</p>
+<p>The <code class="highlighter-rouge">struts.multipart.parser</code> used by the fileUpload interceptor to handle HTTP POST requests, encoded using the
+MIME-type <code class="highlighter-rouge">multipart/form-data</code>, can be changed out. Currently there are two choices, jakarta and pell. The jakarta
+parser is a standard part of the Struts 2 framework needing only its required libraries added to a project. The pell
+parser uses Jason Pell’s multipart parser instead of the Commons-FileUpload library. The pell parser is a Struts 2
+plugin, for more details see: <a href="../plugins/pell/">Pell multipart plugin</a>. There was a third alternative, cos, but it was
+removed due to licensing incompatibilities.</p>
 
-<p>As from Struts version 2.3.18 a new implementation of <code class="highlighter-rouge">MultiPartRequest</code> was added - <code class="highlighter-rouge">JakartaStreamMultiPartRequest</code>. It can be used to handle 
-large files, see <a href="https://issues.apache.org/jira/browse/WW-3025">WW-3025</a> for more details, but you can simple set</p>
+<p>As from Struts version 2.3.18 a new implementation of <code class="highlighter-rouge">MultiPartRequest</code> was added - <code class="highlighter-rouge">JakartaStreamMultiPartRequest</code>. It
+can be used to handle large files, see <a href="https://issues.apache.org/jira/browse/WW-3025">WW-3025</a> for more details, but
+you can simple set</p>
 
 <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>&lt;constant name="struts.multipart.parser" value="jakarta-stream" /&gt;
 </code></pre></div></div>
@@ -598,24 +622,26 @@ large files, see <a href="https://issues.apache.org/jira/browse/WW-3025">WW-302
 
 <h3 id="request-validation">Request validation</h3>
 
-<p>The <code class="highlighter-rouge">struts.multipart.validationRegex</code> is used to define a RegEx to be used to validate if the incoming request is a multipart request. 
-The request must use the <code class="highlighter-rouge">POST</code> method and match the RegEx, by default the RegEx is defined as follow:</p>
+<p>The <code class="highlighter-rouge">struts.multipart.validationRegex</code> is used to define a RegEx to be used to validate if the incoming request is a
+multipart request. The request must use the <code class="highlighter-rouge">POST</code> method and match the RegEx, by default the RegEx is defined as
+follow:</p>
 
-<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>^multipart\\/form-data(; boundary=[a-zA-Z0-9]{1,70})?
+<div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>^multipart/form-data(?:\\s*;\\s*boundary=[0-9a-zA-Z'()+_,\\-./:=?]{1,70})?(?:\\s*;\\s*charset=[a-zA-Z\\-0-9]{3,14})?
 </code></pre></div></div>
 
-<p>Please read <a href="https://www.w3.org/Protocols/rfc1341/7\_2\_Multipart">RFC1341</a> the <strong>Multipart section</strong> for more details, existing 
-Struts <code class="highlighter-rouge">Multipart</code> parsers support only <code class="highlighter-rouge">multipart/form-data</code> content type. This option is available since Struts 2.3.11.</p>
+<p>Please read <a href="https://www.w3.org/Protocols/rfc1341/7_2_Multipart.html">RFC1341</a> the <strong>Multipart section</strong> for more details,
+existing Struts <code class="highlighter-rouge">Multipart</code> parsers support only <code class="highlighter-rouge">multipart/form-data</code> content type. This option is available since
+Struts 2.3.11.</p>
 
 <h3 id="disabling-file-upload-support">Disabling file upload support</h3>
 
-<p>You can alternatively disable the whole file upload mechanism defining a constant in <code class="highlighter-rouge">struts.xml</code>:</p>
+<p>You can alternatively disable the whole file upload mechanism defining a constant in <code class="highlighter-rouge">struts.xml</code>:</p>
 
 <div class="language-xml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="nt">&lt;constant</span> <span class="na">name=</span><span class="s">"struts.multipart.enabled"</span> <span class="na">value=</span><span class="s">"false"</span><span class="nt">/&gt;</span>
 </code></pre></div></div>
 
-<p>With this constant in place, Struts will ignore a <code class="highlighter-rouge">Content-Type</code> header and will treat each request as an ordinary http request. 
-This option is available since Struts 2.3.11. </p>
+<p>With this constant in place, Struts will ignore a <code class="highlighter-rouge">Content-Type</code> header and will treat each request as an ordinary http
+request. This option is available since Struts 2.3.11.</p>
 
   </section>
 </article>
diff --git a/content/core-developers/formatting-dates-and-numbers.html b/content/core-developers/formatting-dates-and-numbers.html
index ef634b704..2ed2fbbda 100644
--- a/content/core-developers/formatting-dates-and-numbers.html
+++ b/content/core-developers/formatting-dates-and-numbers.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/freemarker-result.html b/content/core-developers/freemarker-result.html
index f7023dca0..d0e157006 100644
--- a/content/core-developers/freemarker-result.html
+++ b/content/core-developers/freemarker-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/freemarker-support.html b/content/core-developers/freemarker-support.html
index 5d0b9a75c..f684e746c 100644
--- a/content/core-developers/freemarker-support.html
+++ b/content/core-developers/freemarker-support.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/glassfish-2-x.html b/content/core-developers/glassfish-2-x.html
index dd476f4fc..68632cb7b 100644
--- a/content/core-developers/glassfish-2-x.html
+++ b/content/core-developers/glassfish-2-x.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/httpheader-result.html b/content/core-developers/httpheader-result.html
index 3be5bdbad..f8487e525 100644
--- a/content/core-developers/httpheader-result.html
+++ b/content/core-developers/httpheader-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/https-and-ie-issues.html b/content/core-developers/https-and-ie-issues.html
index 5f0e29bba..5a3532990 100644
--- a/content/core-developers/https-and-ie-issues.html
+++ b/content/core-developers/https-and-ie-issues.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/i18n-interceptor.html b/content/core-developers/i18n-interceptor.html
index 8cf2babf3..71e60b23a 100644
--- a/content/core-developers/i18n-interceptor.html
+++ b/content/core-developers/i18n-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/include-configuration.html b/content/core-developers/include-configuration.html
index 0e406dcc0..6001b9790 100644
--- a/content/core-developers/include-configuration.html
+++ b/content/core-developers/include-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/index.html b/content/core-developers/index.html
index ab5f4f17b..62635f4f3 100644
--- a/content/core-developers/index.html
+++ b/content/core-developers/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/input-config-annotation.html b/content/core-developers/input-config-annotation.html
index 1b2a03b96..4e5f12026 100644
--- a/content/core-developers/input-config-annotation.html
+++ b/content/core-developers/input-config-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/int-range-field-validator-annotation.html b/content/core-developers/int-range-field-validator-annotation.html
index 1742e9152..738e7a601 100644
--- a/content/core-developers/int-range-field-validator-annotation.html
+++ b/content/core-developers/int-range-field-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/int-validator.html b/content/core-developers/int-validator.html
index 519659cd8..568178ff6 100644
--- a/content/core-developers/int-validator.html
+++ b/content/core-developers/int-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/interceptor-configuration.html b/content/core-developers/interceptor-configuration.html
index e6c8a2523..3a9a92b26 100644
--- a/content/core-developers/interceptor-configuration.html
+++ b/content/core-developers/interceptor-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/interceptors.html b/content/core-developers/interceptors.html
index 214bd4056..72662e79a 100644
--- a/content/core-developers/interceptors.html
+++ b/content/core-developers/interceptors.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -442,7 +442,7 @@ than reiterate the same list of Interceptors, we can bundle these Interceptors t
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"com.opensymphony.xwork2.UnknownHandlerManager"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.DefaultUnknownHandlerManager"</span> <span class="na">name=</span><span class="s">"struts"</span> <span class="nt">/&gt;</span>
 
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.dispatcher.DispatcherErrorHandler"</span> <span class="na">name=</span><span class="s">"struts"</span> <span class="na">class=</span><span class="s">"org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler"</span> <span class="nt">/&gt;</span>
-    
+
     <span class="c">&lt;!--  Silly workarounds for OGNL since there is currently no way to flush its internal caches --&gt;</span>
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span class="s">"java.util.ArrayList"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkListPropertyAccessor"</span> <span class="nt">/&gt;</span>
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span class="s">"java.util.HashSet"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor"</span> <span class="nt">/&gt;</span>
@@ -454,6 +454,9 @@ than reiterate the same list of Interceptors, we can bundle these Interceptors t
 
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"com.opensymphony.xwork2.config.providers.ValueSubstitutor"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.config.providers.EnvsValueSubstitutor"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
 
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.components.date.DateFormatter"</span> <span class="na">name=</span><span class="s">"simpleDateFormatter"</span> <span class="na">class=</span><span class="s">"org.apache.struts2.components.date.SimpleDateFormatAdapter"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.components.date.DateFormatter"</span> <span class="na">name=</span><span class="s">"dateTimeFormatter"</span> <span class="na">class=</span><span class="s">"org.apache.struts2.components.date.DateTimeFormatterAdapter"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
+
     <span class="nt">&lt;package</span> <span class="na">name=</span><span class="s">"struts-default"</span> <span class="na">abstract=</span><span class="s">"true"</span><span class="nt">&gt;</span>
         <span class="nt">&lt;result-types&gt;</span>
             <span class="nt">&lt;result-type</span> <span class="na">name=</span><span class="s">"chain"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.ActionChainResult"</span><span class="nt">/&gt;</span>
diff --git a/content/core-developers/jboss-5.html b/content/core-developers/jboss-5.html
index f78a8f745..dda94a970 100644
--- a/content/core-developers/jboss-5.html
+++ b/content/core-developers/jboss-5.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/key-annotation.html b/content/core-developers/key-annotation.html
index c3ca0eba7..0fe7ac560 100644
--- a/content/core-developers/key-annotation.html
+++ b/content/core-developers/key-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/key-property-annotation.html b/content/core-developers/key-property-annotation.html
index f0ece5a19..6909c3ce1 100644
--- a/content/core-developers/key-property-annotation.html
+++ b/content/core-developers/key-property-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/localization.html b/content/core-developers/localization.html
index 8afdbc628..35246616c 100644
--- a/content/core-developers/localization.html
+++ b/content/core-developers/localization.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/logging-interceptor.html b/content/core-developers/logging-interceptor.html
index 8fa5e4902..05804b844 100644
--- a/content/core-developers/logging-interceptor.html
+++ b/content/core-developers/logging-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/logging.html b/content/core-developers/logging.html
index 5a5eb41f9..580b7fc6c 100644
--- a/content/core-developers/logging.html
+++ b/content/core-developers/logging.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/message-store-interceptor.html b/content/core-developers/message-store-interceptor.html
index da228bcfe..4cdbb2aae 100644
--- a/content/core-developers/message-store-interceptor.html
+++ b/content/core-developers/message-store-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/model-driven-interceptor.html b/content/core-developers/model-driven-interceptor.html
index cb2b0274e..d0f981c7e 100644
--- a/content/core-developers/model-driven-interceptor.html
+++ b/content/core-developers/model-driven-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/model-driven.html b/content/core-developers/model-driven.html
index c9381d830..be2c4dd4e 100644
--- a/content/core-developers/model-driven.html
+++ b/content/core-developers/model-driven.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/multiselect-interceptor.html b/content/core-developers/multiselect-interceptor.html
index be2e0f73e..8b9508e32 100644
--- a/content/core-developers/multiselect-interceptor.html
+++ b/content/core-developers/multiselect-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/namespace-annotation.html b/content/core-developers/namespace-annotation.html
index e5567774a..8877acc5f 100644
--- a/content/core-developers/namespace-annotation.html
+++ b/content/core-developers/namespace-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/namespace-configuration.html b/content/core-developers/namespace-configuration.html
index 0837caad5..67d1fce0b 100644
--- a/content/core-developers/namespace-configuration.html
+++ b/content/core-developers/namespace-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/no-op-interceptor.html b/content/core-developers/no-op-interceptor.html
index e227c1ee4..a896a9732 100644
--- a/content/core-developers/no-op-interceptor.html
+++ b/content/core-developers/no-op-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/nutshell.html b/content/core-developers/nutshell.html
index 2d1baf0f2..917106ce1 100644
--- a/content/core-developers/nutshell.html
+++ b/content/core-developers/nutshell.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/object-factory.html b/content/core-developers/object-factory.html
index f7f876874..97d215267 100644
--- a/content/core-developers/object-factory.html
+++ b/content/core-developers/object-factory.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/package-configuration.html b/content/core-developers/package-configuration.html
index 8f238a23e..2d56513d7 100644
--- a/content/core-developers/package-configuration.html
+++ b/content/core-developers/package-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/parameter-remover-interceptor.html b/content/core-developers/parameter-remover-interceptor.html
index b8dba239f..05173e067 100644
--- a/content/core-developers/parameter-remover-interceptor.html
+++ b/content/core-developers/parameter-remover-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/parameters-interceptor.html b/content/core-developers/parameters-interceptor.html
index db5d67d0e..cb7df5204 100644
--- a/content/core-developers/parameters-interceptor.html
+++ b/content/core-developers/parameters-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/performance-tuning.html b/content/core-developers/performance-tuning.html
index a7a8a5c6f..5aa17b895 100644
--- a/content/core-developers/performance-tuning.html
+++ b/content/core-developers/performance-tuning.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/plain-result.html b/content/core-developers/plain-result.html
index f5270263f..f0a8816c3 100644
--- a/content/core-developers/plain-result.html
+++ b/content/core-developers/plain-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/plaintext-result.html b/content/core-developers/plaintext-result.html
index c38e7ad05..09ed2b0be 100644
--- a/content/core-developers/plaintext-result.html
+++ b/content/core-developers/plaintext-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/postback-result.html b/content/core-developers/postback-result.html
index 4b3e95cc4..1dab864fb 100644
--- a/content/core-developers/postback-result.html
+++ b/content/core-developers/postback-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/pre-result-listener.html b/content/core-developers/pre-result-listener.html
index f782b35a0..26df5c2d4 100644
--- a/content/core-developers/pre-result-listener.html
+++ b/content/core-developers/pre-result-listener.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/prepare-interceptor.html b/content/core-developers/prepare-interceptor.html
index 8a310886f..efae5c259 100644
--- a/content/core-developers/prepare-interceptor.html
+++ b/content/core-developers/prepare-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/pure-java-script-client-side-validation.html b/content/core-developers/pure-java-script-client-side-validation.html
index 0b2078b46..1be214c17 100644
--- a/content/core-developers/pure-java-script-client-side-validation.html
+++ b/content/core-developers/pure-java-script-client-side-validation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/redirect-action-result.html b/content/core-developers/redirect-action-result.html
index 4a5a4111e..760caab45 100644
--- a/content/core-developers/redirect-action-result.html
+++ b/content/core-developers/redirect-action-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/redirect-result.html b/content/core-developers/redirect-result.html
index b30bb8af7..ec5b00565 100644
--- a/content/core-developers/redirect-result.html
+++ b/content/core-developers/redirect-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/regex-field-validator-annotation.html b/content/core-developers/regex-field-validator-annotation.html
index c06bbcdbb..81699bb67 100644
--- a/content/core-developers/regex-field-validator-annotation.html
+++ b/content/core-developers/regex-field-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/regex-validator.html b/content/core-developers/regex-validator.html
index 851429f03..7d5a275c0 100644
--- a/content/core-developers/regex-validator.html
+++ b/content/core-developers/regex-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/reloading-configuration.html b/content/core-developers/reloading-configuration.html
index c9266adb8..7de4348ee 100644
--- a/content/core-developers/reloading-configuration.html
+++ b/content/core-developers/reloading-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/required-field-validator-annotation.html b/content/core-developers/required-field-validator-annotation.html
index 21d31f298..9fc780950 100644
--- a/content/core-developers/required-field-validator-annotation.html
+++ b/content/core-developers/required-field-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/required-string-validator-annotation.html b/content/core-developers/required-string-validator-annotation.html
index fb38886a6..8ad7bf14a 100644
--- a/content/core-developers/required-string-validator-annotation.html
+++ b/content/core-developers/required-string-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/required-validator.html b/content/core-developers/required-validator.html
index 068c8f330..81a19b8bd 100644
--- a/content/core-developers/required-validator.html
+++ b/content/core-developers/required-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/requiredstring-validator.html b/content/core-developers/requiredstring-validator.html
index 5a1ce7af6..12aa7ffed 100644
--- a/content/core-developers/requiredstring-validator.html
+++ b/content/core-developers/requiredstring-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/restful-action-mapper.html b/content/core-developers/restful-action-mapper.html
index 5434bf9a9..ec0186832 100644
--- a/content/core-developers/restful-action-mapper.html
+++ b/content/core-developers/restful-action-mapper.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/result-configuration.html b/content/core-developers/result-configuration.html
index e26b85dfd..e58f32305 100644
--- a/content/core-developers/result-configuration.html
+++ b/content/core-developers/result-configuration.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/result-types.html b/content/core-developers/result-types.html
index 67a228318..e2816b7f1 100644
--- a/content/core-developers/result-types.html
+++ b/content/core-developers/result-types.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/roles-interceptor.html b/content/core-developers/roles-interceptor.html
index 854f0bcc3..9b1ce0677 100644
--- a/content/core-developers/roles-interceptor.html
+++ b/content/core-developers/roles-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/scope-interceptor.html b/content/core-developers/scope-interceptor.html
index 27289588f..2697d769d 100644
--- a/content/core-developers/scope-interceptor.html
+++ b/content/core-developers/scope-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/scoped-model-driven-interceptor.html b/content/core-developers/scoped-model-driven-interceptor.html
index 317ff7082..63c89e3c2 100644
--- a/content/core-developers/scoped-model-driven-interceptor.html
+++ b/content/core-developers/scoped-model-driven-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/servlet-config-interceptor.html b/content/core-developers/servlet-config-interceptor.html
index 66b30687b..90f6c1d8b 100644
--- a/content/core-developers/servlet-config-interceptor.html
+++ b/content/core-developers/servlet-config-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/short-validator.html b/content/core-developers/short-validator.html
index c75765e55..5046e58eb 100644
--- a/content/core-developers/short-validator.html
+++ b/content/core-developers/short-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/static-content.html b/content/core-developers/static-content.html
index e8546ee51..fe0e145a1 100644
--- a/content/core-developers/static-content.html
+++ b/content/core-developers/static-content.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/static-parameters-interceptor.html b/content/core-developers/static-parameters-interceptor.html
index f50248d45..ef38b2488 100644
--- a/content/core-developers/static-parameters-interceptor.html
+++ b/content/core-developers/static-parameters-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/stream-result.html b/content/core-developers/stream-result.html
index a173b53dd..0e1bba76c 100644
--- a/content/core-developers/stream-result.html
+++ b/content/core-developers/stream-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/string-length-field-validator-annotation.html b/content/core-developers/string-length-field-validator-annotation.html
index 411ec8d8f..5e9d30527 100644
--- a/content/core-developers/string-length-field-validator-annotation.html
+++ b/content/core-developers/string-length-field-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/stringlength-validator.html b/content/core-developers/stringlength-validator.html
index 3c6cdbb0e..a60af5ccf 100644
--- a/content/core-developers/stringlength-validator.html
+++ b/content/core-developers/stringlength-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/struts-default-vm.html b/content/core-developers/struts-default-vm.html
index d98edba05..642d20b49 100644
--- a/content/core-developers/struts-default-vm.html
+++ b/content/core-developers/struts-default-vm.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/struts-default-xml.html b/content/core-developers/struts-default-xml.html
index f65414938..3c01f290f 100644
--- a/content/core-developers/struts-default-xml.html
+++ b/content/core-developers/struts-default-xml.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -359,7 +359,7 @@ setting in <a href="default-properties">default.properties</a>.</p>
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"com.opensymphony.xwork2.UnknownHandlerManager"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.DefaultUnknownHandlerManager"</span> <span class="na">name=</span><span class="s">"struts"</span> <span class="nt">/&gt;</span>
 
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.dispatcher.DispatcherErrorHandler"</span> <span class="na">name=</span><span class="s">"struts"</span> <span class="na">class=</span><span class="s">"org.apache.struts2.dispatcher.DefaultDispatcherErrorHandler"</span> <span class="nt">/&gt;</span>
-    
+
     <span class="c">&lt;!--  Silly workarounds for OGNL since there is currently no way to flush its internal caches --&gt;</span>
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span class="s">"java.util.ArrayList"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkListPropertyAccessor"</span> <span class="nt">/&gt;</span>
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"ognl.PropertyAccessor"</span> <span class="na">name=</span><span class="s">"java.util.HashSet"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.ognl.accessor.XWorkCollectionPropertyAccessor"</span> <span class="nt">/&gt;</span>
@@ -371,6 +371,9 @@ setting in <a href="default-properties">default.properties</a>.</p>
 
     <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"com.opensymphony.xwork2.config.providers.ValueSubstitutor"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.config.providers.EnvsValueSubstitutor"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
 
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.components.date.DateFormatter"</span> <span class="na">name=</span><span class="s">"simpleDateFormatter"</span> <span class="na">class=</span><span class="s">"org.apache.struts2.components.date.SimpleDateFormatAdapter"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
+    <span class="nt">&lt;bean</span> <span class="na">type=</span><span class="s">"org.apache.struts2.components.date.DateFormatter"</span> <span class="na">name=</span><span class="s">"dateTimeFormatter"</span> <span class="na">class=</span><span class="s">"org.apache.struts2.components.date.DateTimeFormatterAdapter"</span> <span class="na">scope=</span><span class="s">"singleton"</span><span class="nt">/&gt;</span>
+
     <span class="nt">&lt;package</span> <span class="na">name=</span><span class="s">"struts-default"</span> <span class="na">abstract=</span><span class="s">"true"</span><span class="nt">&gt;</span>
         <span class="nt">&lt;result-types&gt;</span>
             <span class="nt">&lt;result-type</span> <span class="na">name=</span><span class="s">"chain"</span> <span class="na">class=</span><span class="s">"com.opensymphony.xwork2.ActionChainResult"</span><span class="nt">/&gt;</span>
diff --git a/content/core-developers/struts-xml.html b/content/core-developers/struts-xml.html
index 737309bf8..86e37b40b 100644
--- a/content/core-developers/struts-xml.html
+++ b/content/core-developers/struts-xml.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/sunone-7-0.html b/content/core-developers/sunone-7-0.html
index b869c5f4b..9a566c9eb 100644
--- a/content/core-developers/sunone-7-0.html
+++ b/content/core-developers/sunone-7-0.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/timer-interceptor.html b/content/core-developers/timer-interceptor.html
index c5549d7d7..ec9b3d5aa 100644
--- a/content/core-developers/timer-interceptor.html
+++ b/content/core-developers/timer-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/token-interceptor.html b/content/core-developers/token-interceptor.html
index e829fb1ad..82ac6bbf6 100644
--- a/content/core-developers/token-interceptor.html
+++ b/content/core-developers/token-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/token-session-interceptor.html b/content/core-developers/token-session-interceptor.html
index b38967007..026ceffc4 100644
--- a/content/core-developers/token-session-interceptor.html
+++ b/content/core-developers/token-session-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/type-conversion-annotation.html b/content/core-developers/type-conversion-annotation.html
index 264498bfa..2561b904f 100644
--- a/content/core-developers/type-conversion-annotation.html
+++ b/content/core-developers/type-conversion-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -145,8 +145,8 @@ Set type to: <code class="highlighter-rouge">type = ConversionType.CLASS</code><
   <li>
     <p>Application wide conversion:</p>
 
-    <p>The conversion rules will be assembled within the <code class="highlighter-rouge">xwork-conversion.properties</code> file within the classpath root.
- Set type to: <code class="highlighter-rouge">type = ConversionType.APPLICATION</code></p>
+    <p>The conversion rules will be assembled within the <code class="highlighter-rouge">struts-conversion.properties</code> or <code class="highlighter-rouge">xwork-conversion.properties</code> (deprecated)
+file within the classpath root. Set type to: <code class="highlighter-rouge">type = ConversionType.APPLICATION</code></p>
   </li>
 </ul>
 
diff --git a/content/core-developers/type-conversion.html b/content/core-developers/type-conversion.html
index 90f9a44b3..3e627238c 100644
--- a/content/core-developers/type-conversion.html
+++ b/content/core-developers/type-conversion.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -268,7 +268,8 @@ amount=com.acme.converters.MyCustomBigDecimalConverter
 
 <h2 id="applying-a-type-converter-for-an-application">Applying a Type Converter for an application</h2>
 
-<p>Application-wide converters can be specified in a file called <code class="highlighter-rouge">xwork-conversion.properties</code> located in the root of the classpath.</p>
+<p>Application-wide converters can be specified in a file called <code class="highlighter-rouge">struts-conversion.properties</code> or <code class="highlighter-rouge">xwork-conversion.properties</code> (deprecated) 
+located in the root of the classpath.</p>
 
 <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code># syntax: &lt;type&gt; = &lt;converterClassName&gt;
 java.math.BigDecimal = com.acme.MyBigDecimalConverter 
@@ -299,10 +300,10 @@ in FreeMarker) and it will be printed as “3, 22” again. As such, if you subm
 converted back to a Point once again.</p>
 
 <p>In some situations you may wish to apply a type converter globally. This can be done by editing the file
-<code class="highlighter-rouge">xwork-conversion.properties</code> in the root of your class path (typically WEB-INF/classes) and providing a
-property in the form of the class name of the object you wish to convert on the left hand side and the class name of
-the type converter on the right hand side. For example, providing a type converter for all Point objects would mean
-adding the following entry:</p>
+<code class="highlighter-rouge">struts-conversion.properties</code> or <code class="highlighter-rouge">xwork-conversion.properties</code> (deprecated) in the root of your class path 
+(typically WEB-INF/classes) and providing a  property in the form of the class name of the object you wish to convert 
+on the left hand side and the class name of  the type converter on the right hand side. For example, providing a type 
+converter for all Point objects would mean adding the following entry:</p>
 
 <div class="highlighter-rouge"><div class="highlight"><pre class="highlight"><code>com.acme.Point = com.acme.PointConverter
 </code></pre></div></div>
diff --git a/content/core-developers/unknown-handlers.html b/content/core-developers/unknown-handlers.html
index 98b086e56..bbe823356 100644
--- a/content/core-developers/unknown-handlers.html
+++ b/content/core-developers/unknown-handlers.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/url-validator-annotation.html b/content/core-developers/url-validator-annotation.html
index 8a59ed0f4..38ee63a27 100644
--- a/content/core-developers/url-validator-annotation.html
+++ b/content/core-developers/url-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/url-validator.html b/content/core-developers/url-validator.html
index e356bc4ed..2e390fb83 100644
--- a/content/core-developers/url-validator.html
+++ b/content/core-developers/url-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/using-field-validators.html b/content/core-developers/using-field-validators.html
index eb0c3a9f0..12eb3e674 100644
--- a/content/core-developers/using-field-validators.html
+++ b/content/core-developers/using-field-validators.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/using-non-field-validators.html b/content/core-developers/using-non-field-validators.html
index a6b92c7f2..aef92c666 100644
--- a/content/core-developers/using-non-field-validators.html
+++ b/content/core-developers/using-non-field-validators.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/using-visitor-field-validator.html b/content/core-developers/using-visitor-field-validator.html
index c0eeded08..24fb0faab 100644
--- a/content/core-developers/using-visitor-field-validator.html
+++ b/content/core-developers/using-visitor-field-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/validation-annotation.html b/content/core-developers/validation-annotation.html
index dfb2107a3..4012bbb5c 100644
--- a/content/core-developers/validation-annotation.html
+++ b/content/core-developers/validation-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/validation-interceptor.html b/content/core-developers/validation-interceptor.html
index 70ec86170..c6ba46796 100644
--- a/content/core-developers/validation-interceptor.html
+++ b/content/core-developers/validation-interceptor.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/validation-parameter-annotation.html b/content/core-developers/validation-parameter-annotation.html
index 33754e6d2..b45df28c4 100644
--- a/content/core-developers/validation-parameter-annotation.html
+++ b/content/core-developers/validation-parameter-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/validation.html b/content/core-developers/validation.html
index e907a5899..6437cebb5 100644
--- a/content/core-developers/validation.html
+++ b/content/core-developers/validation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/validations-annotation.html b/content/core-developers/validations-annotation.html
index 7c4cfb0e7..8e1dc16ab 100644
--- a/content/core-developers/validations-annotation.html
+++ b/content/core-developers/validations-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/velocity-properties.html b/content/core-developers/velocity-properties.html
index cf5e0325f..0e46bb465 100644
--- a/content/core-developers/velocity-properties.html
+++ b/content/core-developers/velocity-properties.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/velocity-result.html b/content/core-developers/velocity-result.html
index 25c743457..ed28111c3 100644
--- a/content/core-developers/velocity-result.html
+++ b/content/core-developers/velocity-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/visitor-field-validator-annotation.html b/content/core-developers/visitor-field-validator-annotation.html
index 0d56e5ad9..3f420fb10 100644
--- a/content/core-developers/visitor-field-validator-annotation.html
+++ b/content/core-developers/visitor-field-validator-annotation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/visitor-validator.html b/content/core-developers/visitor-validator.html
index d97ff2535..87cc70280 100644
--- a/content/core-developers/visitor-validator.html
+++ b/content/core-developers/visitor-validator.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/web-xml.html b/content/core-developers/web-xml.html
index 8e0f6b5ed..89ad88abf 100644
--- a/content/core-developers/web-xml.html
+++ b/content/core-developers/web-xml.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/weblogic-6-1.html b/content/core-developers/weblogic-6-1.html
index 661162d94..88d292bfb 100644
--- a/content/core-developers/weblogic-6-1.html
+++ b/content/core-developers/weblogic-6-1.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/weblogic.html b/content/core-developers/weblogic.html
index a8fd232d3..aa94280ff 100644
--- a/content/core-developers/weblogic.html
+++ b/content/core-developers/weblogic.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/websphere.html b/content/core-developers/websphere.html
index 60bb1aaeb..7da1e45a1 100644
--- a/content/core-developers/websphere.html
+++ b/content/core-developers/websphere.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/wildcard-mappings.html b/content/core-developers/wildcard-mappings.html
index 3315f9244..c8f064aad 100644
--- a/content/core-developers/wildcard-mappings.html
+++ b/content/core-developers/wildcard-mappings.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/writing-interceptors.html b/content/core-developers/writing-interceptors.html
index 3a7145516..51e37087b 100644
--- a/content/core-developers/writing-interceptors.html
+++ b/content/core-developers/writing-interceptors.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/core-developers/xsl-result.html b/content/core-developers/xsl-result.html
index a9375f617..ff8629b4c 100644
--- a/content/core-developers/xsl-result.html
+++ b/content/core-developers/xsl-result.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/dev-mail.html b/content/dev-mail.html
index 7da77bc54..0b9a313d0 100644
--- a/content/dev-mail.html
+++ b/content/dev-mail.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/docs/index.html b/content/docs/index.html
index bd8572f92..c4a600c66 100644
--- a/content/docs/index.html
+++ b/content/docs/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/download.html b/content/download.html
index 443a344f6..685984168 100644
--- a/content/download.html
+++ b/content/download.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -190,26 +190,26 @@
 
 <h2 id="struts-ga">Full Releases</h2>
 
-<h3 id="struts2529">Struts 2.5.29</h3>
+<h3 id="struts2530">Struts 2.5.30</h3>
 
 <p>
-  <a href="https://struts.apache.org/">Apache Struts 2.5.29</a> is an elegant, extensible
+  <a href="https://struts.apache.org/">Apache Struts 2.5.30</a> is an elegant, extensible
   framework for creating enterprise-ready Java web applications. It is available in a full distribution,
   or as separate library, source, example and documentation distributions.
-  Struts 2.5.29 is the "best available" version of Struts in the 2.5 series.
+  Struts 2.5.30 is the "best available" version of Struts in the 2.5 series.
 </p>
 
 <ul>
   <li>
-    <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.29">Version Notes</a>
+    <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.30">Version Notes</a>
   </li>
 
   <li>Full Distribution:
     <ul>
       <li>
-        <a href="[preferred]struts/2.5.29/struts-2.5.29-all.zip">struts-2.5.29-all.zip</a> (65MB)
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-all.zip.asc">PGP</a>]
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-all.zip.sha256">SHA256</a>]
+        <a href="[preferred]struts/2.5.30/struts-2.5.30-all.zip">struts-2.5.30-all.zip</a> (65MB)
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-all.zip.asc">PGP</a>]
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-all.zip.sha256">SHA256</a>]
       </li>
     </ul>
   </li>
@@ -217,9 +217,9 @@
   <li>Example Applications:
     <ul>
       <li>
-        <a href="[preferred]struts/2.5.29/struts-2.5.29-apps.zip">struts-2.5.29-apps.zip</a> (35MB)
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-apps.zip.asc">PGP</a>]
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-apps.zip.sha256">SHA256</a>]
+        <a href="[preferred]struts/2.5.30/struts-2.5.30-apps.zip">struts-2.5.30-apps.zip</a> (35MB)
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-apps.zip.asc">PGP</a>]
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-apps.zip.sha256">SHA256</a>]
       </li>
     </ul>
   </li>
@@ -227,9 +227,9 @@
   <li>Essential Dependencies Only:
     <ul>
       <li>
-        <a href="[preferred]struts/2.5.29/struts-2.5.29-min-lib.zip">struts-2.5.29-min-lib.zip</a> (4MB)
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-min-lib.zip.asc">PGP</a>]
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-min-lib.zip.sha256">SHA256</a>]
+        <a href="[preferred]struts/2.5.30/struts-2.5.30-min-lib.zip">struts-2.5.30-min-lib.zip</a> (4MB)
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-min-lib.zip.asc">PGP</a>]
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-min-lib.zip.sha256">SHA256</a>]
       </li>
     </ul>
   </li>
@@ -237,9 +237,9 @@
   <li>All Dependencies:
     <ul>
       <li>
-        <a href="[preferred]struts/2.5.29/struts-2.5.29-lib.zip">struts-2.5.29-lib.zip</a> (19MB)
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-lib.zip.asc">PGP</a>]
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-lib.zip.sha256">SHA256</a>]
+        <a href="[preferred]struts/2.5.30/struts-2.5.30-lib.zip">struts-2.5.30-lib.zip</a> (19MB)
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-lib.zip.asc">PGP</a>]
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-lib.zip.sha256">SHA256</a>]
       </li>
     </ul>
   </li>
@@ -247,9 +247,9 @@
   <li>Documentation:
     <ul>
       <li>
-        <a href="[preferred]struts/2.5.29/struts-2.5.29-docs.zip">struts-2.5.29-docs.zip</a> (13MB)
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-docs.zip.asc">PGP</a>]
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-docs.zip.sha256">SHA256</a>]
+        <a href="[preferred]struts/2.5.30/struts-2.5.30-docs.zip">struts-2.5.30-docs.zip</a> (13MB)
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-docs.zip.asc">PGP</a>]
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-docs.zip.sha256">SHA256</a>]
       </li>
     </ul>
   </li>
@@ -257,9 +257,9 @@
   <li>Source:
     <ul>
       <li>
-        <a href="[preferred]struts/2.5.29/struts-2.5.29-src.zip">struts-2.5.29-src.zip</a> (7MB)
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-src.zip.asc">PGP</a>]
-        [<a href="https://downloads.apache.org/struts/2.5.29/struts-2.5.29-src.zip.sha256">SHA256</a>]
+        <a href="[preferred]struts/2.5.30/struts-2.5.30-src.zip">struts-2.5.30-src.zip</a> (7MB)
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-src.zip.asc">PGP</a>]
+        [<a href="https://downloads.apache.org/struts/2.5.30/struts-2.5.30-src.zip.sha256">SHA256</a>]
       </li>
     </ul>
   </li>
diff --git a/content/getting-started/annotations.html b/content/getting-started/annotations.html
index 6cef6e7b0..f5adfe695 100644
--- a/content/getting-started/annotations.html
+++ b/content/getting-started/annotations.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/coding-actions.html b/content/getting-started/coding-actions.html
index 01150c802..91c355f48 100644
--- a/content/getting-started/coding-actions.html
+++ b/content/getting-started/coding-actions.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/control-tags.html b/content/getting-started/control-tags.html
index 577195ff3..5c23061c7 100644
--- a/content/getting-started/control-tags.html
+++ b/content/getting-started/control-tags.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/debugging-struts.html b/content/getting-started/debugging-struts.html
index ef46785d4..d6c53c022 100644
--- a/content/getting-started/debugging-struts.html
+++ b/content/getting-started/debugging-struts.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/exception-handling.html b/content/getting-started/exception-handling.html
index 288fa277a..f490db266 100644
--- a/content/getting-started/exception-handling.html
+++ b/content/getting-started/exception-handling.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/exclude-parameters.html b/content/getting-started/exclude-parameters.html
index 059af33f3..fa3dacdb9 100644
--- a/content/getting-started/exclude-parameters.html
+++ b/content/getting-started/exclude-parameters.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/form-tags.html b/content/getting-started/form-tags.html
index 6b5c02ea8..a1b5f7c3a 100644
--- a/content/getting-started/form-tags.html
+++ b/content/getting-started/form-tags.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/form-validation-using-xml.html b/content/getting-started/form-validation-using-xml.html
index ee506af48..3c8cb6162 100644
--- a/content/getting-started/form-validation-using-xml.html
+++ b/content/getting-started/form-validation-using-xml.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/form-validation.html b/content/getting-started/form-validation.html
index a7088c6e5..beb7554e8 100644
--- a/content/getting-started/form-validation.html
+++ b/content/getting-started/form-validation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/hello-world-using-struts2.html b/content/getting-started/hello-world-using-struts2.html
index 30850fc9d..6e59a6df2 100644
--- a/content/getting-started/hello-world-using-struts2.html
+++ b/content/getting-started/hello-world-using-struts2.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/how-to-create-a-struts2-web-application.html b/content/getting-started/how-to-create-a-struts2-web-application.html
index 0e024f175..b55f145b8 100644
--- a/content/getting-started/how-to-create-a-struts2-web-application.html
+++ b/content/getting-started/how-to-create-a-struts2-web-application.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/http-session.html b/content/getting-started/http-session.html
index 5c0174565..195da1661 100644
--- a/content/getting-started/http-session.html
+++ b/content/getting-started/http-session.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/index.html b/content/getting-started/index.html
index a0bd956c6..eab01ff19 100644
--- a/content/getting-started/index.html
+++ b/content/getting-started/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/introducing-interceptors.html b/content/getting-started/introducing-interceptors.html
index ab9780ba7..39fe5289f 100644
--- a/content/getting-started/introducing-interceptors.html
+++ b/content/getting-started/introducing-interceptors.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/jasper-reports-tutorial.html b/content/getting-started/jasper-reports-tutorial.html
index e6b5096b4..93b12c69c 100644
--- a/content/getting-started/jasper-reports-tutorial.html
+++ b/content/getting-started/jasper-reports-tutorial.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/message-resource-files.html b/content/getting-started/message-resource-files.html
index 29f0ae174..04db39314 100644
--- a/content/getting-started/message-resource-files.html
+++ b/content/getting-started/message-resource-files.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/preperable-interface.html b/content/getting-started/preperable-interface.html
index 47ebe0904..f5d3a6f8c 100644
--- a/content/getting-started/preperable-interface.html
+++ b/content/getting-started/preperable-interface.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/processing-forms.html b/content/getting-started/processing-forms.html
index 1460c87fd..9913772dd 100644
--- a/content/getting-started/processing-forms.html
+++ b/content/getting-started/processing-forms.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/spring.html b/content/getting-started/spring.html
index b63371d7d..2b91cee55 100644
--- a/content/getting-started/spring.html
+++ b/content/getting-started/spring.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/themes.html b/content/getting-started/themes.html
index 88373713e..5375074b2 100644
--- a/content/getting-started/themes.html
+++ b/content/getting-started/themes.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/unit-testing.html b/content/getting-started/unit-testing.html
index d208748dc..300a00e54 100644
--- a/content/getting-started/unit-testing.html
+++ b/content/getting-started/unit-testing.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/using-tags.html b/content/getting-started/using-tags.html
index e062b521c..803ceacd5 100644
--- a/content/getting-started/using-tags.html
+++ b/content/getting-started/using-tags.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/getting-started/wildcard-method-selection.html b/content/getting-started/wildcard-method-selection.html
index f45525039..47ede1459 100644
--- a/content/getting-started/wildcard-method-selection.html
+++ b/content/getting-started/wildcard-method-selection.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/helping.html b/content/helping.html
index 04c044883..77465e71b 100644
--- a/content/helping.html
+++ b/content/helping.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/index.html b/content/index.html
index 99cd3e5d8..9c709d07d 100644
--- a/content/index.html
+++ b/content/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -134,7 +134,7 @@
       extensible using a plugin architecture, and ships with plugins to support
       REST, AJAX and JSON.
     </p>
-    <a href="download.cgi#struts2529" class="btn btn-primary btn-large">
+    <a href="download.cgi#struts2530" class="btn btn-primary btn-large">
       <img src="img/download-icon.svg" alt="Download"> Download
     </a>
     <a href="primer.html" class="btn btn-info btn-large">
@@ -146,12 +146,12 @@
   <div class="col-md-12">
     <div class="row">
       <div class="column col-md-4">
-        <h2>Apache Struts 2.5.29 GA</h2>
+        <h2>Apache Struts 2.5.30 GA</h2>
         <p>
-          Apache Struts 2.5.29 GA has been released<br/>on 22 January 2022.
+          Apache Struts 2.5.30 GA has been released<br/>on 04 April 2022.
         </p>
-        Read more in <a href="announce-2022#a20220122">Announcement</a> or in
-        <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.29">Version notes</a>
+        Read more in <a href="announce-2022#a20220404">Announcement</a> or in
+        <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.30">Version notes</a>
       </div>
       <div class="column col-md-4">
         <h2>Security Advice on Log4j 2.12.4/2.17.1</h2>
diff --git a/content/kickstart.html b/content/kickstart.html
index af042935a..bf68af52d 100644
--- a/content/kickstart.html
+++ b/content/kickstart.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/mail.html b/content/mail.html
index d2f5df4ec..3f67634cb 100644
--- a/content/mail.html
+++ b/content/mail.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/maven-archetypes/index.html b/content/maven-archetypes/index.html
index 6d2aef0f4..4fecf7c8a 100644
--- a/content/maven-archetypes/index.html
+++ b/content/maven-archetypes/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/maven-archetypes/struts2-archetype-blank.html b/content/maven-archetypes/struts2-archetype-blank.html
index 721c2ddb8..43486f61a 100644
--- a/content/maven-archetypes/struts2-archetype-blank.html
+++ b/content/maven-archetypes/struts2-archetype-blank.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/bean-validation/index.html b/content/plugins/bean-validation/index.html
index afaebba88..ad62ee46d 100644
--- a/content/plugins/bean-validation/index.html
+++ b/content/plugins/bean-validation/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/cdi/index.html b/content/plugins/cdi/index.html
index 1c9d9bbb7..9387a2edd 100644
--- a/content/plugins/cdi/index.html
+++ b/content/plugins/cdi/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/codebehind/index.html b/content/plugins/codebehind/index.html
index 06d397398..d3bd519ee 100644
--- a/content/plugins/codebehind/index.html
+++ b/content/plugins/codebehind/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/config-browser/index.html b/content/plugins/config-browser/index.html
index 65fe14b02..baa14e8c3 100644
--- a/content/plugins/config-browser/index.html
+++ b/content/plugins/config-browser/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/convention/converting.html b/content/plugins/convention/converting.html
index 1524e296b..faa9a5de0 100644
--- a/content/plugins/convention/converting.html
+++ b/content/plugins/convention/converting.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/convention/index.html b/content/plugins/convention/index.html
index 2bc1541cf..c77b8da88 100644
--- a/content/plugins/convention/index.html
+++ b/content/plugins/convention/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/dwr/index.html b/content/plugins/dwr/index.html
index 4e113f89b..49442cae5 100644
--- a/content/plugins/dwr/index.html
+++ b/content/plugins/dwr/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/embedded-jsp/index.html b/content/plugins/embedded-jsp/index.html
index abd54e763..c5a4b8465 100644
--- a/content/plugins/embedded-jsp/index.html
+++ b/content/plugins/embedded-jsp/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/extending-an-application-with-custom-plugins.html b/content/plugins/extending-an-application-with-custom-plugins.html
index 857c821d8..b39519398 100644
--- a/content/plugins/extending-an-application-with-custom-plugins.html
+++ b/content/plugins/extending-an-application-with-custom-plugins.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/index.html b/content/plugins/index.html
index 80323a0af..4ee850aeb 100644
--- a/content/plugins/index.html
+++ b/content/plugins/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/jasperreports/index.html b/content/plugins/jasperreports/index.html
index f903c2811..e0bd63ab0 100644
--- a/content/plugins/jasperreports/index.html
+++ b/content/plugins/jasperreports/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/java-8-support/index.html b/content/plugins/java-8-support/index.html
index a4662370a..8629cbaa5 100644
--- a/content/plugins/java-8-support/index.html
+++ b/content/plugins/java-8-support/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/javatemplates/index.html b/content/plugins/javatemplates/index.html
index bbf9b9e02..64cb2f06c 100644
--- a/content/plugins/javatemplates/index.html
+++ b/content/plugins/javatemplates/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/jfreechart/index.html b/content/plugins/jfreechart/index.html
index f28a68e08..5833f7484 100644
--- a/content/plugins/jfreechart/index.html
+++ b/content/plugins/jfreechart/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/jsf/index.html b/content/plugins/jsf/index.html
index 4fb2c6dd2..ac608299f 100644
--- a/content/plugins/jsf/index.html
+++ b/content/plugins/jsf/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/json/index.html b/content/plugins/json/index.html
index 3098baf76..e6d5e47ff 100644
--- a/content/plugins/json/index.html
+++ b/content/plugins/json/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/json/json-ajax-validation.html b/content/plugins/json/json-ajax-validation.html
index 76751e22f..aeb3dd7b8 100644
--- a/content/plugins/json/json-ajax-validation.html
+++ b/content/plugins/json/json-ajax-validation.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/junit/index.html b/content/plugins/junit/index.html
index 5e8b2b1fe..6e66aadb7 100644
--- a/content/plugins/junit/index.html
+++ b/content/plugins/junit/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/osgi/index.html b/content/plugins/osgi/index.html
index 6ac5a8c4b..61f397e5d 100644
--- a/content/plugins/osgi/index.html
+++ b/content/plugins/osgi/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/oval/index.html b/content/plugins/oval/index.html
index de6bd640f..2853eca94 100644
--- a/content/plugins/oval/index.html
+++ b/content/plugins/oval/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/plexus/index.html b/content/plugins/plexus/index.html
index cdc468325..88dcfd342 100644
--- a/content/plugins/plexus/index.html
+++ b/content/plugins/plexus/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/plugins.html b/content/plugins/plugins.html
index cb230681e..54e541737 100644
--- a/content/plugins/plugins.html
+++ b/content/plugins/plugins.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/portlet-tiles/index.html b/content/plugins/portlet-tiles/index.html
index 5f0b26337..1c27dbe5e 100644
--- a/content/plugins/portlet-tiles/index.html
+++ b/content/plugins/portlet-tiles/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/portlet/index.html b/content/plugins/portlet/index.html
index a5aa9cdd9..6bf71fdb6 100644
--- a/content/plugins/portlet/index.html
+++ b/content/plugins/portlet/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/portlet/struts-2-portlet-tutorial.html b/content/plugins/portlet/struts-2-portlet-tutorial.html
index c08901c22..bfca90489 100644
--- a/content/plugins/portlet/struts-2-portlet-tutorial.html
+++ b/content/plugins/portlet/struts-2-portlet-tutorial.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/rest/index.html b/content/plugins/rest/index.html
index db38fc32c..d7cef5f32 100644
--- a/content/plugins/rest/index.html
+++ b/content/plugins/rest/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/sitegraph/index.html b/content/plugins/sitegraph/index.html
index 104418e24..5cfec82a1 100644
--- a/content/plugins/sitegraph/index.html
+++ b/content/plugins/sitegraph/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/sitemesh/index.html b/content/plugins/sitemesh/index.html
index a084a128e..065d6580d 100644
--- a/content/plugins/sitemesh/index.html
+++ b/content/plugins/sitemesh/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/spring/index.html b/content/plugins/spring/index.html
index 2a92f1a1f..c9e147251 100644
--- a/content/plugins/spring/index.html
+++ b/content/plugins/spring/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/spring/spring-session-components-workarounds.html b/content/plugins/spring/spring-session-components-workarounds.html
index 716215ab8..550d5130c 100644
--- a/content/plugins/spring/spring-session-components-workarounds.html
+++ b/content/plugins/spring/spring-session-components-workarounds.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/struts-1/index.html b/content/plugins/struts-1/index.html
index a7d069597..dd2f611e1 100644
--- a/content/plugins/struts-1/index.html
+++ b/content/plugins/struts-1/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/testng/index.html b/content/plugins/testng/index.html
index 0ea90bf34..7852c558d 100644
--- a/content/plugins/testng/index.html
+++ b/content/plugins/testng/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/tiles-3/index.html b/content/plugins/tiles-3/index.html
index 7763f2c85..f0daedbab 100644
--- a/content/plugins/tiles-3/index.html
+++ b/content/plugins/tiles-3/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/tiles/index.html b/content/plugins/tiles/index.html
index 6a9c58789..2bcfcbbb1 100644
--- a/content/plugins/tiles/index.html
+++ b/content/plugins/tiles/index.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/plugins/tiles/tiles-use.html b/content/plugins/tiles/tiles-use.html
index 3dee7c657..2b3d9e192 100644
--- a/content/plugins/tiles/tiles-use.html
+++ b/content/plugins/tiles/tiles-use.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/primer.html b/content/primer.html
index 00e3e09a6..f9bd5ca0f 100644
--- a/content/primer.html
+++ b/content/primer.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -261,16 +261,16 @@ Struts, it will help you when your application grows and becomes more complex.</
 <h4 id="resources">Properties Files and ResourceBundles</h4>
 
 <p>Java applications, including web applications, are often
-configured using <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Properties">Properties</a>
+configured using <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Properties.html">Properties</a>
 files. Properties files are the basis for the
-<a href="http://docs.oracle.com/javase/6/docs/api/java/util/ResourceBundle">ResourceBundles</a>
+<a href="https://docs.oracle.com/javase/8/docs/api/java/util/ResourceBundle.html">ResourceBundles</a>
 that the framework uses to provide message resources to an application.</p>
 
 <p>The Java Tutorials provide a
 <a href="http://docs.oracle.com/javase/tutorial/essential/environment/properties">great introduction to Properties</a>.</p>
 
 <p>Java ResourceBundles use one or more Properties files to provide internationalized messages
-to users based their <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Locale">Locale</a>.
+to users based their <a href="https://docs.oracle.com/javase/8/docs/api/java/util/Locale.html">Locale</a>.
 Support for localizing an application was built into the framework from the ground-up.</p>
 
 <p>Again the Java Tutorials provide
diff --git a/content/release-guidelines.html b/content/release-guidelines.html
index 72352ae68..dafd41abb 100644
--- a/content/release-guidelines.html
+++ b/content/release-guidelines.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
diff --git a/content/releases.html b/content/releases.html
index d2d8ef5fd..996f451ca 100644
--- a/content/releases.html
+++ b/content/releases.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
                 <li><a href="https://www.apache.org/foundation/sponsorship.html">Sponsorship</a></li>
@@ -148,7 +148,7 @@
     <ul>
       <li>
         <a href="/download.cgi#struts-ga">
-          Struts 2.5.29
+          Struts 2.5.30
         </a> ("best available")
       </li>
     </ul>
@@ -230,6 +230,94 @@
   </tr>
   </thead>
   <tbody>
+  <tr>
+    <td class="no-wrap">
+      Struts 2.5.29
+    </td>
+    <td class="no-wrap">22 January 2022</td>
+    <td>
+    </td>
+    <td>
+      <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.29">Version notes</a>
+    </td>
+  </tr>
+  <tr>
+    <td class="no-wrap">
+      Struts 2.5.28.3
+    </td>
+    <td class="no-wrap">02 January 2022</td>
+    <td>
+    </td>
+    <td>
+      <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.28.3">Version notes</a>
+    </td>
+  </tr>
+  <tr>
+    <td class="no-wrap">
+      Struts 2.5.28.2
+    </td>
+    <td class="no-wrap">23 December 2021</td>
+    <td>
+    </td>
+    <td>
+      <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.28.2">Version notes</a>
+    </td>
+  </tr>
+  <tr>
+    <td class="no-wrap">
+      Struts 2.5.28.1
+    </td>
+    <td class="no-wrap">17 December 2021</td>
+    <td>
+    </td>
+    <td>
+      <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.28.1">Version notes</a>
+    </td>
+  </tr>
+  <tr>
+    <td class="no-wrap">
+      Struts 2.5.28
+    </td>
+    <td class="no-wrap">12 December 2021</td>
+    <td>
+    </td>
+    <td>
+      <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.28">Version notes</a>
+    </td>
+  </tr>
+  <tr>
+    <td class="no-wrap">
+      Struts 2.5.27
+    </td>
+    <td class="no-wrap">16 November 2021</td>
+    <td>
+    </td>
+    <td>
+      <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.27">Version notes</a>
+    </td>
+  </tr>
+  <tr>
+    <td class="no-wrap">
+      Struts 2.5.26
+    </td>
+    <td class="no-wrap">06 December 2020</td>
+    <td>
+    </td>
+    <td>
+      <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.26">Version notes</a>
+    </td>
+  </tr>
+  <tr>
+    <td class="no-wrap">
+      Struts 2.5.25
+    </td>
+    <td class="no-wrap">28 September 2020</td>
+    <td>
+    </td>
+    <td>
+      <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.5.25">Version notes</a>
+    </td>
+  </tr>
   <tr>
     <td class="no-wrap">
       Struts 2.5.22
@@ -334,7 +422,7 @@
       <a href="https://cwiki.apache.org/confluence/display/WW/Version+Notes+2.3.34">Version notes</a>
     </td>
   </tr>
-  
+
   <tr>
     <td class="no-wrap">
       Struts 2.5.13
diff --git a/content/security.html b/content/security.html
index 0b95750d6..de054197c 100644
--- a/content/security.html
+++ b/content/security.html
@@ -49,7 +49,7 @@
                 <li><a href="/index.html">Welcome</a></li>
                 <li><a href="/download.cgi">Download</a></li>
                 <li><a href="/releases.html">Releases</a></li>
-                <li><a href="/announce-2021.html">Announcements</a></li>
+                <li><a href="/announce-2022.html">Announcements</a></li>
                 <li><a href="http://www.apache.org/licenses/">License</a></li>
                 <li><a href="https://www.apache.org/foundation/thanks.html">Thanks!</a></li>
... 1494 lines suppressed ...