wilx opened a new pull request, #425:
URL: https://github.com/apache/maven-help-plugin/pull/425
## Summary
Fixes #327.
`help:evaluate` can receive model collections implemented by Maven 3's
internal
`ModelMerger.MergingList`. XStream does not recognize that implementation as
a
collection and falls back to reflective serialization. On recent JDKs, this
fails when it tries to access `AbstractList.modCount`.
This change registers a collection converter that accepts every `Collection`
implementation and aliases the concrete runtime list class so the existing
XML
root name is preserved. The evaluated list is serialized directly without
copying it.
This PR targets `master`, the current 3.5.x line. The plugin still declares
Maven 3.6.3 as its runtime prerequisite. The regression IT is limited to
Maven
3 because Maven 4 exposes different model collection implementations.
This replaces #416, which targeted the 3.4.x maintenance branch currently
under
retirement review. PR #417 covers Maven 4-specific collection and map
implementations and can build on this Maven 3 change. The commits remain
intentionally split: the first adds the regression IT and the second applies
the fix.
## Validation
- Maven 3.9.16 / JDK 21: `mvn -Prun-its clean verify` - 30 unit tests and all
36 integration tests passed.
- Maven 3.10.0-rc-1 / JDK 21: `mvn -Prun-its clean verify` - 30 unit tests
and
all 36 integration tests passed.
- Maven 4.0.0-rc-6 / JDK 21: the unit-test phase passed all 30 tests. The
full
Invoker run passed 32 tests, skipped 2 Maven-version-specific tests, and
hit
the two existing unrelated failures also documented by #417:
`describe-cmd-with-goal-report` and `describe-plugin-without-name`.
- `mvn spotless:apply` made no changes.
- The failure was reproduced before the fix with Help Plugin 3.5.2, Maven
3.9.16, and JDK 21.
## Checklist
- [x] A JIRA issue exists for this change: MPH-210.
- [x] This pull request addresses only that issue.
- [x] Each commit has a meaningful subject line and body.
- [x] The pull request title follows the `[MPH-XXX]` convention.
- [x] This description explains what changed, how, and why.
- [x] `mvn clean verify` passed.
- [x] The integration tests passed with Maven 3.9.16 and Maven 3.10.0-rc-1.
- [x] I hereby declare this contribution to be licenced under the
[Apache License Version 2.0, January
2004](http://www.apache.org/licenses/LICENSE-2.0).
- [ ] In any other case, an Apache Individual Contributor License Agreement
has
been filed.
--
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]