This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a change to branch
feat/WW-5593-convention-plugin-noclass-exception
in repository https://gitbox.apache.org/repos/asf/struts.git
omit 0cb91deb4 fix(convention): WW-5593 handle NoClassDefFoundError in
action class scanning
add 9305a5812 WW-5256 Add configurable FreeMarker whitespace stripping and
compress tag (#1418)
add 8ee415f03 refactor(config): WW-5256 move compress constants to
struts.tag.compress namespace (#1446)
add f6ef7499f Bump github/codeql-action from 4.31.5 to 4.31.7 (#1447)
add 2245844d8 Bump org.apache.maven.plugins:maven-war-plugin from 3.4.0 to
3.5.1 (#1449)
add ef2aa1f94 Bump org.apache.commons:commons-text from 1.14.0 to 1.15.0
(#1448)
add d1c134c30 Bump byte-buddy.version from 1.17.7 to 1.18.2 (#1450)
add af684f40e Bump com.fasterxml.jackson:jackson-bom from 2.19.1 to 2.20.1
(#1456)
add 904430dfd feat(release): uses release/struts-6-8-x as based branch for
next Struts 6.x release (#1457)
add 2e8da16ad Bump org.jacoco:jacoco-maven-plugin from 0.8.13 to 0.8.14
add 558a4c5a7 Merge pull request #1459 from
apache/dependabot/maven/main/org.jacoco-jacoco-maven-plugin-0.8.14
add b6c6d2da0 Bump org.codehaus.mojo:versions-maven-plugin from 2.19.0 to
2.20.1
add c500648de Merge pull request #1463 from
apache/dependabot/maven/main/org.codehaus.mojo-versions-maven-plugin-2.20.1
add 3483620c1 Bump org.apache.maven.plugins:maven-release-plugin from
3.2.0 to 3.3.0
add 5351231e2 Merge pull request #1460 from
apache/dependabot/maven/main/org.apache.maven.plugins-maven-release-plugin-3.3.0
add e24d2f2d3 WW-5444 Add HTML5 theme with comprehensive unit tests (#1422)
add 6d778ac9b fix(convention): WW-5594 exclude root package classes with
wildcard patterns (#1468)
add 4a53c9054 fix(convention): WW-5593 handle NoClassDefFoundError in
action class scanning
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (0cb91deb4)
\
N -- N -- N
refs/heads/feat/WW-5593-convention-plugin-noclass-exception (4a53c9054)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
.github/dependabot.yml | 2 +-
.github/workflows/codeql.yml | 6 +-
.github/workflows/scorecards-analysis.yaml | 2 +-
CLAUDE.md | 3 +-
Jenkinsfile | 6 +-
.../Html5Action.java} | 11 +-
apps/showcase/src/main/resources/struts.xml | 6 +
.../src/main/webapp/WEB-INF/decorators/main.jsp | 69 +-
.../src/main/webapp/WEB-INF/html5/index.jsp | 283 ++++++++
.../showcase/src/main/webapp/WEB-INF/sitemesh3.xml | 1 +
.../struts2/showcase/Html5TagExampleTest.java | 183 +++++
.../java/org/apache/struts2/StrutsConstants.java | 32 +
.../org/apache/struts2/components/Compress.java | 196 ++++++
.../template/FreemarkerTemplateEngine.java | 1 +
.../views/freemarker/FreemarkerManager.java | 120 ++--
.../{PropertyModel.java => CompressModel.java} | 14 +-
.../views/freemarker/tags/StrutsModels.java | 11 +-
.../views/jsp/{ElseTag.java => CompressTag.java} | 29 +-
.../org/apache/struts2/default.properties | 17 +
.../resources/template/css_xhtml/controlfooter.ftl | 17 +-
.../resources/template/css_xhtml/form-validate.ftl | 10 +-
.../main/resources/template/css_xhtml/label.ftl | 1 -
.../template/{simple => html5}/a-close.ftl | 10 +-
.../resources/template/{simple => html5}/a.ftl | 0
.../template/{simple => html5}/actionerror.ftl | 18 +-
.../template/{simple => html5}/actionmessage.ftl | 18 +-
.../template/{simple => html5}/checkbox.ftl | 12 +-
.../main/resources/template/html5/checkboxlist.ftl | 117 ++++
.../src/main/resources/template/html5/combobox.ftl | 101 +++
.../{simple => html5}/common-attributes.ftl | 2 +-
.../template/{simple => html5}/controlfooter.ftl | 0
.../template/{simple => html5}/controlheader.ftl | 0
.../resources/template/{simple => html5}/css.ftl | 4 +-
.../datetextfield.ftl} | 4 +-
.../resources/template/{simple => html5}/debug.ftl | 0
.../control-close.ftl => html5/doubleselect.ftl} | 1 +
.../{simple => html5}/dynamic-attributes.ftl | 14 +-
.../resources/template/{simple => html5}/empty.ftl | 0
.../main/resources/template/html5/fielderror.ftl | 80 +++
.../resources/template/{simple => html5}/file.ftl | 12 +-
.../{simple/form.ftl => html5/form-close.ftl} | 7 +-
.../{simple/form-common.ftl => html5/form.ftl} | 135 ++--
.../resources/template/{simple => html5}/head.ftl | 2 +-
.../template/{simple => html5}/hidden.ftl | 4 +-
.../inputtransferselect.ftl} | 1 +
.../resources/template/{simple => html5}/label.ftl | 12 +-
.../resources/template/{simple => html5}/link.ftl | 10 +-
.../resources/template/{simple => html5}/nonce.ftl | 4 +-
.../src/main/resources/template/html5/optgroup.ftl | 69 ++
.../optiontransferselect.ftl} | 1 +
.../template/{simple => html5}/password.ftl | 12 +-
.../prefixed-dynamic-attributes.ftl | 15 +-
.../template/{simple => html5}/radiomap.ftl | 104 +--
.../resources/template/{simple => html5}/reset.ftl | 25 +-
.../template/{simple => html5}/script-close.ftl | 2 +-
.../template/{simple => html5}/script.ftl | 7 +-
.../{simple => html5}/scripting-events.ftl | 2 +-
core/src/main/resources/template/html5/select.ftl | 145 ++++
.../template/{simple => html5}/submit-close.ftl | 53 +-
.../template/{simple => html5}/submit.ftl | 17 +-
.../resources/template/{simple => html5}/text.ftl | 10 +-
.../template/{simple => html5}/textarea.ftl | 14 +-
.../template/{xhtml => html5}/theme.properties | 0
.../resources/template/{simple => html5}/token.ftl | 4 +-
.../control-close.ftl => html5/updownselect.ftl} | 1 +
.../main/resources/template/simple/actionerror.ftl | 14 +-
.../template/simple/form-close-tooltips.ftl | 1 -
.../main/resources/template/simple/form-close.ftl | 2 -
.../resources/template/xhtml/controlheader.ftl | 12 +-
.../resources/template/xhtml/form-validate.ftl | 12 +-
...ge-attributes.html => compress-attributes.html} | 16 +-
.../site/resources/tags/compress-description.html | 3 +
.../apache/struts2/components/CompressTest.java | 390 +++++++++++
.../apache/struts2/util/WildcardHelperTest.java | 53 ++
.../views/freemarker/FreemarkerManagerTest.java | 54 ++
.../struts2/views/jsp/AbstractUITagTest.java | 15 +
.../apache/struts2/views/jsp/CompressTagTest.java | 90 +++
.../struts2/views/jsp/ui/ActionErrorTagTest.java | 82 +++
.../struts2/views/jsp/ui/ActionMessageTagTest.java | 82 +++
.../apache/struts2/views/jsp/ui/AnchorTest.java | 111 +++
.../struts2/views/jsp/ui/CheckboxListTest.java | 13 +
.../apache/struts2/views/jsp/ui/CheckboxTest.java | 11 +
.../apache/struts2/views/jsp/ui/ComboBoxTest.java | 13 +
.../apache/struts2/views/jsp/ui/DebugTagTest.java | 16 -
.../struts2/views/jsp/ui/FieldErrorTagTest.java | 99 +++
.../org/apache/struts2/views/jsp/ui/FileTest.java | 11 +
.../apache/struts2/views/jsp/ui/FormTagTest.java | 125 ++++
.../apache/struts2/views/jsp/ui/HiddenTest.java | 11 +
.../org/apache/struts2/views/jsp/ui/LabelTest.java | 11 +
.../apache/struts2/views/jsp/ui/PasswordTest.java | 11 +
.../org/apache/struts2/views/jsp/ui/RadioTest.java | 13 +
.../org/apache/struts2/views/jsp/ui/ResetTest.java | 11 +
.../apache/struts2/views/jsp/ui/SelectTest.java | 13 +
.../apache/struts2/views/jsp/ui/SubmitTest.java | 11 +
.../apache/struts2/views/jsp/ui/TextareaTest.java | 11 +
.../apache/struts2/views/jsp/ui/TextfieldTest.java | 11 +
.../struts2/views/jsp/ui/Anchor-dynamic-html5.txt | 6 +
.../jsp/ui/{Formtag-14.txt => Formtag-1-html5.txt} | 5 +-
.../struts2/views/jsp/ui/Formtag-dynamic-html5.txt | 1 +
.../struts2/views/jsp/ui/Formtag-enctype-html5.txt | 1 +
.../{Formtag-14.txt => Formtag-method-html5.txt} | 5 +-
.../{Formtag-14.txt => Formtag-validate-html5.txt} | 5 +-
.../{Component-1.txt => actionerror-1-html5.txt} | 0
.../struts2/views/jsp/ui/actionerror-3-html5.txt | 1 +
.../{Component-1.txt => actionmessage-1-html5.txt} | 0
.../struts2/views/jsp/ui/actionmessage-3-html5.txt | 1 +
.../ui/{Component-1.txt => fielderror-2-html5.txt} | 0
.../struts2/views/jsp/ui/fielderror-3-html5.txt | 1 +
.../struts2/views/jsp/ui/fielderror-6-html5.txt | 1 +
.../views/jsp/ui/fielderror-filtered-html5.txt | 1 +
.../views/jsp/ui/{href-1.txt => href-1-html5.txt} | 0
.../apache/struts2/views/jsp/ui/href-3-html5.txt | 1 +
.../struts2/views/jsp/ui/href-disabled-html5.txt | 1 +
parent/pom.xml | 2 +-
.../PackageBasedActionConfigBuilder.java | 31 +-
.../src/main/resources/struts-plugin.xml | 86 +--
.../PackageBasedActionConfigBuilderTest.java | 74 ++
pom.xml | 12 +-
.../2025-11-23-WW-5444-move-html5-theme-to-core.md | 398 +++++++++++
.../2025-11-26-WW-5444-html5-missing-tests.md | 779 +++++++++++++++++++++
...24-WW-5256-freemarker-whitespace-compression.md | 172 +++++
.../2025-11-23-WW-5444-html5-theme-testing.md | 518 ++++++++++++++
...press-component-security-implementation-plan.md | 675 ++++++++++++++++++
...025-12-02-WW-5594-wildcard-exclusion-pattern.md | 460 ++++++++++++
.../2025-11-26-WW-5444-html5-theme-validation.md | 413 +++++++++++
125 files changed, 6543 insertions(+), 504 deletions(-)
copy
apps/showcase/src/main/java/org/apache/struts2/showcase/{tag/nonui/debugtag/DebugTagAction.java
=> action/Html5Action.java} (75%)
create mode 100644 apps/showcase/src/main/webapp/WEB-INF/html5/index.jsp
create mode 100644
apps/showcase/src/test/java/it/org/apache/struts2/showcase/Html5TagExampleTest.java
create mode 100644
core/src/main/java/org/apache/struts2/components/Compress.java
copy
core/src/main/java/org/apache/struts2/views/freemarker/tags/{PropertyModel.java
=> CompressModel.java} (84%)
copy core/src/main/java/org/apache/struts2/views/jsp/{ElseTag.java =>
CompressTag.java} (68%)
copy core/src/main/resources/template/{simple => html5}/a-close.ftl (84%)
copy core/src/main/resources/template/{simple => html5}/a.ftl (100%)
copy core/src/main/resources/template/{simple => html5}/actionerror.ftl (84%)
copy core/src/main/resources/template/{simple => html5}/actionmessage.ftl (83%)
copy core/src/main/resources/template/{simple => html5}/checkbox.ftl (85%)
create mode 100644 core/src/main/resources/template/html5/checkboxlist.ftl
create mode 100644 core/src/main/resources/template/html5/combobox.ftl
copy core/src/main/resources/template/{simple => html5}/common-attributes.ftl
(98%)
copy core/src/main/resources/template/{simple => html5}/controlfooter.ftl
(100%)
copy core/src/main/resources/template/{simple => html5}/controlheader.ftl
(100%)
copy core/src/main/resources/template/{simple => html5}/css.ftl (96%)
copy core/src/main/resources/template/{simple/common-attributes.ftl =>
html5/datetextfield.ftl} (86%)
copy core/src/main/resources/template/{simple => html5}/debug.ftl (100%)
copy core/src/main/resources/template/{css_xhtml/control-close.ftl =>
html5/doubleselect.ftl} (87%)
copy core/src/main/resources/template/{simple => html5}/dynamic-attributes.ftl
(86%)
copy core/src/main/resources/template/{simple => html5}/empty.ftl (100%)
create mode 100644 core/src/main/resources/template/html5/fielderror.ftl
copy core/src/main/resources/template/{simple => html5}/file.ftl (83%)
copy core/src/main/resources/template/{simple/form.ftl =>
html5/form-close.ftl} (89%)
copy core/src/main/resources/template/{simple/form-common.ftl =>
html5/form.ftl} (84%)
copy core/src/main/resources/template/{simple => html5}/head.ftl (98%)
copy core/src/main/resources/template/{simple => html5}/hidden.ftl (87%)
copy core/src/main/resources/template/{css_xhtml/control-close.ftl =>
html5/inputtransferselect.ftl} (87%)
copy core/src/main/resources/template/{simple => html5}/label.ftl (79%)
copy core/src/main/resources/template/{simple => html5}/link.ftl (88%)
copy core/src/main/resources/template/{simple => html5}/nonce.ftl (94%)
create mode 100644 core/src/main/resources/template/html5/optgroup.ftl
copy core/src/main/resources/template/{css_xhtml/control-close.ftl =>
html5/optiontransferselect.ftl} (87%)
copy core/src/main/resources/template/{simple => html5}/password.ftl (85%)
copy core/src/main/resources/template/{simple =>
html5}/prefixed-dynamic-attributes.ftl (80%)
copy core/src/main/resources/template/{simple => html5}/radiomap.ftl (50%)
copy core/src/main/resources/template/{simple => html5}/reset.ftl (82%)
copy core/src/main/resources/template/{simple => html5}/script-close.ftl (98%)
copy core/src/main/resources/template/{simple => html5}/script.ftl (95%)
copy core/src/main/resources/template/{simple => html5}/scripting-events.ftl
(99%)
create mode 100644 core/src/main/resources/template/html5/select.ftl
copy core/src/main/resources/template/{simple => html5}/submit-close.ftl (86%)
copy core/src/main/resources/template/{simple => html5}/submit.ftl (90%)
copy core/src/main/resources/template/{simple => html5}/text.ftl (86%)
copy core/src/main/resources/template/{simple => html5}/textarea.ftl (84%)
copy core/src/main/resources/template/{xhtml => html5}/theme.properties (100%)
copy core/src/main/resources/template/{simple => html5}/token.ftl (93%)
copy core/src/main/resources/template/{css_xhtml/control-close.ftl =>
html5/updownselect.ftl} (87%)
copy core/src/site/resources/tags/{merge-attributes.html =>
compress-attributes.html} (87%)
create mode 100644 core/src/site/resources/tags/compress-description.html
create mode 100644
core/src/test/java/org/apache/struts2/components/CompressTest.java
create mode 100644
core/src/test/java/org/apache/struts2/views/jsp/CompressTagTest.java
create mode 100644
core/src/test/resources/org/apache/struts2/views/jsp/ui/Anchor-dynamic-html5.txt
copy core/src/test/resources/org/apache/struts2/views/jsp/ui/{Formtag-14.txt
=> Formtag-1-html5.txt} (50%)
create mode 100644
core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-dynamic-html5.txt
create mode 100644
core/src/test/resources/org/apache/struts2/views/jsp/ui/Formtag-enctype-html5.txt
copy core/src/test/resources/org/apache/struts2/views/jsp/ui/{Formtag-14.txt
=> Formtag-method-html5.txt} (50%)
copy core/src/test/resources/org/apache/struts2/views/jsp/ui/{Formtag-14.txt
=> Formtag-validate-html5.txt} (50%)
copy core/src/test/resources/org/apache/struts2/views/jsp/ui/{Component-1.txt
=> actionerror-1-html5.txt} (100%)
create mode 100644
core/src/test/resources/org/apache/struts2/views/jsp/ui/actionerror-3-html5.txt
copy core/src/test/resources/org/apache/struts2/views/jsp/ui/{Component-1.txt
=> actionmessage-1-html5.txt} (100%)
create mode 100644
core/src/test/resources/org/apache/struts2/views/jsp/ui/actionmessage-3-html5.txt
copy core/src/test/resources/org/apache/struts2/views/jsp/ui/{Component-1.txt
=> fielderror-2-html5.txt} (100%)
create mode 100644
core/src/test/resources/org/apache/struts2/views/jsp/ui/fielderror-3-html5.txt
create mode 100644
core/src/test/resources/org/apache/struts2/views/jsp/ui/fielderror-6-html5.txt
create mode 100644
core/src/test/resources/org/apache/struts2/views/jsp/ui/fielderror-filtered-html5.txt
copy core/src/test/resources/org/apache/struts2/views/jsp/ui/{href-1.txt =>
href-1-html5.txt} (100%)
create mode 100644
core/src/test/resources/org/apache/struts2/views/jsp/ui/href-3-html5.txt
create mode 100644
core/src/test/resources/org/apache/struts2/views/jsp/ui/href-disabled-html5.txt
create mode 100644
thoughts/shared/plans/2025-11-23-WW-5444-move-html5-theme-to-core.md
create mode 100644
thoughts/shared/plans/2025-11-26-WW-5444-html5-missing-tests.md
create mode 100644
thoughts/shared/research/2025-09-24-WW-5256-freemarker-whitespace-compression.md
create mode 100644
thoughts/shared/research/2025-11-23-WW-5444-html5-theme-testing.md
create mode 100644
thoughts/shared/research/2025-11-27-compress-component-security-implementation-plan.md
create mode 100644
thoughts/shared/research/2025-12-02-WW-5594-wildcard-exclusion-pattern.md
create mode 100644
thoughts/shared/validation/2025-11-26-WW-5444-html5-theme-validation.md