lukaszlenart opened a new pull request, #321:
URL: https://github.com/apache/struts-site/pull/321
Content audit for the **7.3.0** and **6.11.0** releases: every release-note
item was mapped to the page that documents it, and only the real gaps were
filled. No announcement files are touched (`_config.yml`, `announce-*`,
`releases.md` belong to the separate release-announcement change).
Every constant, default, message key and class name below was verified
against the `STRUTS_7_3_0` / `STRUTS_6_11_0` tags — and against `STRUTS_7_2_1`
/ `STRUTS_6_10_0` to confirm each "Since" line — rather than against the JIRA
descriptions.
## Behaviour and API changes (`alert-warning` callouts)
- **`struts.multipart.maxFiles` no longer counts normal fields** (WW-5474).
It now counts uploaded files only, with the new
`struts.multipart.maxParameterCount` (default `256`) limiting non-file fields.
Anyone who raised `maxFiles` purely to fit large forms should move that
headroom to the new constant.
- **`acceptFile(UploadPolicy, ...)` signature change** and the
`WithLazyParams<P extends InterceptorParams>` generic (WW-5659), plus
fail-closed handling of unresolved `${...}` interceptor parameters.
- **`ConversionRule.COLLECTION` deprecated** in favour of `ELEMENT`
(`@Deprecated(since = "7.3.0")`); the `Collection_xxx` key is still read as a
fallback.
- **JSON plugin**: `struts.json.writer` / `struts.json.reader` overrides are
honoured again, and such a bean must now be declared `scope="prototype"`.
- **`@StrutsParameter` is enforced on creator-bound REST body properties**
(WW-5642) — records and `@JsonCreator` constructors.
- **The DI container's `Logger` binding was removed** in 7.3.0 (WW-5620).
`@Inject`-ing a `java.util.logging.Logger` into a container-managed bean no
longer resolves.
## New configuration
| Constant | Default | Since |
|---|---|---|
| `struts.multipart.maxParameterCount` | `256` | 7.3.0 |
| `struts.validators.skipValidatorsOnConversionError` | `false` | 7.3.0 |
| `struts.i18n.cacheType` / `struts.i18n.cacheMaxSize` | `wtlfu` / `10000` |
6.11.0 and 7.3.0 |
| `struts.locale.validateRequestLocale` | `false` | 6.11.0 and 7.3.0 |
| `struts.csp.report.maxSize` | `8192` | 6.11.0 and 7.3.0 |
## Other additions
- In-memory uploads and the new `UploadedFile.getInputStream()` /
`isMissing()` default methods (WW-5413).
- `@TypeConversion` at field level, and automatic rule-prefix derivation for
the `key` parameter.
- Java records and `Optional` in the JSON plugin; `@JSON` /
`@JSONFieldBridge` on record components.
- Deterministic most-specific-first ordering of annotated wildcard actions
(WW-3784).
- Weld client-proxy recognition via `CdiProxyService` in the CDI plugin
(WW-5604).
- Log4j2 standardization on the Logging page; note that the dropped
`slf4j-api` was `optional`, so consumers see no classpath change, and 6.11.0
still declares it.
- The file-upload error-message table was corrected to the
commons-fileupload2 exception key names used since 7.0.0, with a note that 6.x
uses the FileUpload 1.x names.
## Verification
`bundle exec jekyll build --trace` passes. No `{:.alert}` is attached to a
code fence, all internal link targets exist, and all new anchors resolve in the
generated output.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]