Hi everyone,

I hope you guys have been able to rest a bit during the summer (for those
that are back to work already)...

I've pushed a few important PRs in the past months and I'd really like to
get the discussion going around those.  Those are major changes that I
think we should introduce in Maven 4 asap:
  * Better support for alternative POM syntaxes
  * Needed infrastructure to evolve the model
  * POM mixins
  * Support for XML entities / XInclude

The first 3 changes are stacked onto each other. The first one is the
support for alternative POM syntaxes [2].  Note that no syntax is provided
by the PR, but an example extension is provided in the IT PR [3], the
reader being generated using the maven model and the IT's project is using
it [4].  The main idea is to provide an enhanced XML syntax if we want, as
it was discussed for the POM 5.0 [5].

The second one provides the ability to make evolution to the model without
breaking the maven ecosystem.  The model has been stuck in 4.0.0 version
for 15 years or so, most of the things that would have required a change
have been delayed or worked around.  The consumer POM that has been
introduced in Maven 4 is a first step, but I think we should go further.
Please read the details in the PR [6].

The third one is the support for POM mixins [7].  That one is still a
draft.  Two ITs have been written to leverage mixins using GAV or as
relative paths [8].  This definitely needs some work, but the current state
definitely shows that it can be implemented and introduced in the next
alphas.

The last one is a relatively small PR [9] which brings support for XML
entities and XInclude loaded from external files.  All loaded files are
loaded using relative URLs (absolute URLs are rejected for security
reasons). The entities and xinclude bits are all inlined during the raw ->
consumer POM transformation so that they don't appear in repositories.  I
wrote this PR as a possible alternative for mixins, that's the main reason
why I include it in this discussion.

I'm not necessarily looking for in-depth reviews of the PRs, but at least
to find a consensus and general agreement on the way forward.

Cheers,
Guillaume

[2] https://github.com/apache/maven/pull/1197
[3]
https://github.com/apache/maven-integration-testing/pull/276/files#diff-ffb3dec529cab94ebf3c5830444275ad2b2e4826fe1df843454882efadd2446c
[4]
https://github.com/apache/maven-integration-testing/pull/276/files#diff-8d7362e60d231ad8c5d4b7746873da2855d9cf1fd5aeeca9c143ed942bd94b38
[5]
https://cwiki.apache.org/confluence/display/MAVEN/POM+Model+Version+5.0.0
[6] https://github.com/apache/maven/pull/1160
[7]
https://github.com/apache/maven/pull/1209/commits/211e27acd21a6cb8cee30ccd066499fc613a5c82
[8]
https://github.com/apache/maven-integration-testing/tree/b2642d74caae854051dc77acd19b972dfe66b1cd/core-it-suite/src/test/resources/mng-5102-mixins
[9] https://github.com/apache/maven/pull/1205

-- 
------------------------
Guillaume Nodet

Reply via email to