This is an automated email from the ASF dual-hosted git repository.
lukaszlenart pushed a change to branch feature/WW-5697-indexed-access-fast-path
in repository https://gitbox.apache.org/repos/asf/struts.git
omit a701c00b6 WW-5697 refactor(ognl): address SonarQube findings
omit 0360f733d WW-5697 chore(ognl): deprecate DENY_INDEXED_ACCESS_EXECUTION
omit cf53094b7 WW-5697 fix(ognl): restrict the indexed-access fast path to
real indexed properties
add c15fa305b Update Maven Central badge link in README (#1875)
add a1193445b chore(copilot): add code-review agent skill (#1876)
add a87f86b94 docs: add merging-dependabot-prs skill (#1877)
add c752860e3 WW-5695 Derive HTML5 constraint attributes from validators,
deprecate the JS validator (#1865)
add 04f63bee4 WW-5697 fix(ognl): restrict the indexed-access fast path to
real indexed properties
add d1176ffe9 WW-5697 chore(ognl): deprecate DENY_INDEXED_ACCESS_EXECUTION
add 368e561e9 WW-5697 refactor(ognl): address SonarQube findings
add 8fc78cee8 WW-5697 fix(ognl): identify the indexed accessor by method,
not by property name
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 (a701c00b6)
\
N -- N -- N refs/heads/feature/WW-5697-indexed-access-fast-path
(8fc78cee8)
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:
.claude/skills/merging-dependabot-prs/SKILL.md | 204 +++
.github/skills/code-review/SKILL.md | 134 ++
README.md | 2 +-
.../java/org/apache/struts2/StrutsConstants.java | 16 +
.../struts2/components/EcmaScriptSafeRegex.java | 124 ++
.../java/org/apache/struts2/components/File.java | 5 +
.../java/org/apache/struts2/components/Form.java | 72 +-
.../HtmlConstraintProvider.java} | 29 +-
.../apache/struts2/components/HtmlControlType.java | 78 +
.../org/apache/struts2/components/Password.java | 5 +
.../java/org/apache/struts2/components/Radio.java | 5 +
.../java/org/apache/struts2/components/Select.java | 5 +
.../components/StrutsHtmlConstraintProvider.java | 208 +++
.../org/apache/struts2/components/TextArea.java | 5 +
.../org/apache/struts2/components/TextField.java | 6 +
.../java/org/apache/struts2/components/UIBean.java | 129 ++
.../config/StrutsBeanSelectionProvider.java | 2 +
.../struts2/ognl/accessor/XWorkMethodAccessor.java | 82 +-
.../util/reflection/ReflectionContextState.java | 9 +-
.../org/apache/struts2/views/jsp/ui/FormTag.java | 7 +
.../org/apache/struts2/default.properties | 9 +
core/src/main/resources/struts-beans.xml | 2 +
.../resources/template/html5/common-attributes.ftl | 1 +
.../{common-attributes.ftl => constraints.ftl} | 6 +-
.../template/xhtml/form-close-validate.ftl | 7 +
.../apache/struts2/TestConfigurationProvider.java | 9 +
.../struts2/components/ConstraintAction.java | 37 +-
.../components/ConstraintAttributesTest.java | 170 ++
.../apache/struts2/components/ControlTypeTest.java | 74 +
.../components/EcmaScriptSafeRegexTest.java | 99 ++
.../components/FormFieldValidatorsTest.java | 95 +
.../struts2/components/HtmlControlTypeTest.java | 78 +
.../StrutsHtmlConstraintProviderTest.java | 312 ++++
.../ognl/accessor/XWorkMethodAccessorTest.java | 91 +-
.../views/jsp/ui/Html5ConstraintRenderingTest.java | 131 ++
.../components/ConstraintAction-validation.xml | 22 +-
.../2026-08-24-html5-constraint-validation.md | 1828 ++++++++++++++++++++
...026-08-24-html5-constraint-validation-design.md | 422 +++++
38 files changed, 4457 insertions(+), 63 deletions(-)
create mode 100644 .claude/skills/merging-dependabot-prs/SKILL.md
create mode 100644 .github/skills/code-review/SKILL.md
create mode 100644
core/src/main/java/org/apache/struts2/components/EcmaScriptSafeRegex.java
copy core/src/main/java/org/apache/struts2/{factory/ValidatorFactory.java =>
components/HtmlConstraintProvider.java} (50%)
create mode 100644
core/src/main/java/org/apache/struts2/components/HtmlControlType.java
create mode 100644
core/src/main/java/org/apache/struts2/components/StrutsHtmlConstraintProvider.java
copy core/src/main/resources/template/html5/{common-attributes.ftl =>
constraints.ftl} (84%)
copy plugins/junit/src/test/java/org/apache/struts2/junit/JUnitTestAction.java
=> core/src/test/java/org/apache/struts2/components/ConstraintAction.java (60%)
create mode 100644
core/src/test/java/org/apache/struts2/components/ConstraintAttributesTest.java
create mode 100644
core/src/test/java/org/apache/struts2/components/ControlTypeTest.java
create mode 100644
core/src/test/java/org/apache/struts2/components/EcmaScriptSafeRegexTest.java
create mode 100644
core/src/test/java/org/apache/struts2/components/FormFieldValidatorsTest.java
create mode 100644
core/src/test/java/org/apache/struts2/components/HtmlControlTypeTest.java
create mode 100644
core/src/test/java/org/apache/struts2/components/StrutsHtmlConstraintProviderTest.java
create mode 100644
core/src/test/java/org/apache/struts2/views/jsp/ui/Html5ConstraintRenderingTest.java
copy
apps/showcase/src/main/resources/org/apache/struts2/showcase/action/EmployeeAction-validation.xml
=>
core/src/test/resources/org/apache/struts2/components/ConstraintAction-validation.xml
(67%)
create mode 100644
docs/superpowers/plans/2026-08-24-html5-constraint-validation.md
create mode 100644
docs/superpowers/specs/2026-08-24-html5-constraint-validation-design.md