Le lun. 28 août 2023 à 08:04, Olivier Lamy <ol...@apache.org> a écrit :

> Hi,
>
> On Tue, 22 Aug 2023 at 17:36, Guillaume Nodet <gno...@apache.org> wrote:
> >
> > 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
>
> I really like the idea of being able to improve the model.
>

For the model, and I think this is the most critical part and should really
be discussed further, I've explained in more detail at
https://github.com/apache/maven/pull/1160
The major point is how to handle new models in maven central...


> I find a bit scary the idea of XML entities/XInclude especially for
> all the possible security problems that I can imagine coming with
> that.
> No real example in mind, but I had so many issues problems in the last
> 10 years with XML entities/XInclude :)
> but maybe I'm wrong.
> how do you exactly plan to do that?
>

For the XML entities / XInclude, I think the security risks can easily be
mitigated.
I've just pushed an additional commit which restricts any entity / xinclude
loading
to only files inside the rootDirectory tree.
This is easily achieved as all the loads are done through a single object:

https://github.com/apache/maven/pull/1205/commits/89544c9c3c4cedfd3cd5b4fdfd8a84d8f003ef3a#diff-afe459a772f52262ac9aac04cf7822659de5540edd2302722478358146249574R32
I've added a few unit tests to cover this at

https://github.com/apache/maven/pull/1205/commits/89544c9c3c4cedfd3cd5b4fdfd8a84d8f003ef3a#diff-2b42337852eda2ae6fd664a97ac2a0deca997ea23debfa0158af89c678d8c6e4R30

Cheers,
Guillaume


>
> >
> > 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
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>

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

Reply via email to