This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a change to branch main
in repository https://gitbox.apache.org/repos/asf/struts.git
from fda6ca9f2 WW-5786 test(convention): pin HTTP method enforcement on
Convention actions
new 2d9c13694 WW-5791 docs: design for Struts Boot
new 4b81e135a WW-5791 docs: implementation plan for Struts Boot
new f74c99621 WW-5791 feat(boot): add struts2-boot-starter module with
fluent action registry
new 8916f7763 WW-5791 feat(boot): translate the action registry into
Struts package configs
new 1b518f1d8 WW-5791 feat(boot): read port and context path from
struts.properties and arguments
new 68e87198b WW-5791 feat(boot): launch Struts on embedded Tomcat from
main()
new 35615ff0a WW-5791 fix(boot): serve an empty docBase and capture every
filter init failure
new f5a440942 WW-5791 feat(boot): add boot-hello example app with runnable
jar
new d3f444d8e WW-5791 fix(boot): harden embedded Tomcat defaults and
normalise boot settings
new 4187e7dfb WW-5791 fix(boot): verify action classes and registry
arguments at startup
new 6af507b42 WW-5791 fix(boot): skip deploying boot-hello and mark its
jar Multi-Release
new 7574d9b31 WW-5791 docs: document bind address, logging and packaging
in boot-hello
new faf00ebfb WW-5791 docs: add Struts Boot to the threat model
new 1986ef59e WW-5791 fix(boot): address Sonar findings in the starter
new 9a13f550c WW-5791 fix(boot): keep the base directory private and close
on every start failure
The 15 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
Summary of changes:
THREAT_MODEL.md | 49 ++-
apps/boot-hello/README.md | 79 ++++
apps/boot-hello/pom.xml | 96 +++++
.../org/apache/struts2/boot/hello/HelloAction.java | 18 +-
.../org/apache/struts2/boot/hello/HelloApp.java | 23 +-
.../src/main/resources/templates/hello.ftl | 1 +
.../apache/struts2/boot/hello/HelloAppTest.java | 32 +-
apps/pom.xml | 1 +
bom/pom.xml | 5 +
{plugins/xslt => boot}/pom.xml | 32 +-
.../org/apache/struts2/boot/ActionDefinition.java | 112 ++++++
.../org/apache/struts2/boot/ActionRegistry.java | 49 +++
.../java/org/apache/struts2/boot/BootSettings.java | 119 ++++++
.../java/org/apache/struts2/boot/HttpMethods.java | 28 +-
.../org/apache/struts2/boot/NamespaceActions.java | 74 ++++
.../boot/RegistryConfigurationProvider.java | 180 +++++++++
.../java/org/apache/struts2/boot/StrutsBoot.java | 50 +++
.../apache/struts2/boot/StrutsBootApplication.java | 9 +-
.../org/apache/struts2/boot/StrutsBootServer.java | 256 ++++++++++++
.../apache/struts2/boot/ActionRegistryTest.java | 107 +++++
.../org/apache/struts2/boot/BootSettingsTest.java | 122 ++++++
.../boot/RegistryConfigurationProviderTest.java | 265 ++++++++++++
.../apache/struts2/boot/StrutsBootTomcatTest.java | 256 ++++++++++++
.../org/apache/struts2/boot/fixture/BrokenApp.java | 19 +-
.../apache/struts2/boot/fixture/HelloAction.java | 18 +-
.../org/apache/struts2/boot/fixture/HelloApp.java | 35 +-
.../struts2/boot/fixture/ThrowingAction.java | 14 +-
.../apache/struts2/boot/fixture/UserAction.java | 18 +-
.../src/test/resources/struts-boot-clash.xml | 6 +-
.../src/test/resources/struts.properties | 3 +-
.../src/test/resources/struts.xml | 11 +-
.../src/test/resources/templates/admin/users.ftl | 1 +
.../src/test/resources/templates/hello.ftl | 1 +
.../plans/2026-10-23-WW-5791-struts-boot.md | 444 +++++++++++++++++++++
.../specs/2026-10-23-WW-5791-struts-boot-design.md | 202 ++++++++++
parent/pom.xml | 12 +
pom.xml | 3 +
37 files changed, 2599 insertions(+), 151 deletions(-)
create mode 100644 apps/boot-hello/README.md
create mode 100644 apps/boot-hello/pom.xml
copy
plugins/convention/src/test/java/org/apache/struts2/convention/actions/NoAnnotationAction.java
=>
apps/boot-hello/src/main/java/org/apache/struts2/boot/hello/HelloAction.java
(82%)
copy core/src/main/java/org/apache/struts2/result/plain/DateHttpHeader.java =>
apps/boot-hello/src/main/java/org/apache/struts2/boot/hello/HelloApp.java (64%)
copy core/src/main/resources/template/css_xhtml/control-close.ftl =>
apps/boot-hello/src/main/resources/templates/hello.ftl (95%)
copy
core/src/test/java/org/apache/struts2/dispatcher/multipart/StrutsUploadedFileTest.java
=>
apps/boot-hello/src/test/java/org/apache/struts2/boot/hello/HelloAppTest.java
(52%)
copy {plugins/xslt => boot}/pom.xml (66%)
create mode 100644
boot/src/main/java/org/apache/struts2/boot/ActionDefinition.java
create mode 100644
boot/src/main/java/org/apache/struts2/boot/ActionRegistry.java
create mode 100644 boot/src/main/java/org/apache/struts2/boot/BootSettings.java
copy core/src/main/java/org/apache/struts2/result/plain/BodyWriter.java =>
boot/src/main/java/org/apache/struts2/boot/HttpMethods.java (58%)
create mode 100644
boot/src/main/java/org/apache/struts2/boot/NamespaceActions.java
create mode 100644
boot/src/main/java/org/apache/struts2/boot/RegistryConfigurationProvider.java
create mode 100644 boot/src/main/java/org/apache/struts2/boot/StrutsBoot.java
copy core/src/main/java/org/apache/struts2/result/plain/HttpHeader.java =>
boot/src/main/java/org/apache/struts2/boot/StrutsBootApplication.java (87%)
create mode 100644
boot/src/main/java/org/apache/struts2/boot/StrutsBootServer.java
create mode 100644
boot/src/test/java/org/apache/struts2/boot/ActionRegistryTest.java
create mode 100644
boot/src/test/java/org/apache/struts2/boot/BootSettingsTest.java
create mode 100644
boot/src/test/java/org/apache/struts2/boot/RegistryConfigurationProviderTest.java
create mode 100644
boot/src/test/java/org/apache/struts2/boot/StrutsBootTomcatTest.java
copy
core/src/main/java/org/apache/struts2/conversion/annotations/ConversionType.java
=> boot/src/test/java/org/apache/struts2/boot/fixture/BrokenApp.java (71%)
copy
plugins/convention/src/test/java/org/apache/struts2/convention/actions/action/TestAction.java
=> boot/src/test/java/org/apache/struts2/boot/fixture/HelloAction.java (83%)
copy core/src/test/java/org/apache/struts2/SimpleFooAction.java =>
boot/src/test/java/org/apache/struts2/boot/fixture/HelloApp.java (54%)
copy
plugins/convention/src/test/java/org/apache/struts2/convention/actions/action/TestAction.java
=> boot/src/test/java/org/apache/struts2/boot/fixture/ThrowingAction.java (84%)
copy
plugins/convention/src/test/java/org/apache/struts2/convention/flags/alwaysmapexecute/MixedAction.java
=> boot/src/test/java/org/apache/struts2/boot/fixture/UserAction.java (75%)
copy core/src/test/resources/struts-checkbox-submit-unchecked.xml =>
boot/src/test/resources/struts-boot-clash.xml (87%)
copy apps/showcase/src/main/resources/globalMessages_en.properties =>
boot/src/test/resources/struts.properties (94%)
copy
core/src/test/resources/org/apache/struts2/config/providers/xwork-include-before-package-2.xml
=> boot/src/test/resources/struts.xml (72%)
copy core/src/main/resources/template/css_xhtml/control-close.ftl =>
boot/src/test/resources/templates/admin/users.ftl (98%)
copy core/src/main/resources/template/css_xhtml/control-close.ftl =>
boot/src/test/resources/templates/hello.ftl (95%)
create mode 100644 docs/superpowers/plans/2026-10-23-WW-5791-struts-boot.md
create mode 100644
docs/superpowers/specs/2026-10-23-WW-5791-struts-boot-design.md