HI Oliver,

Nice! However that approach may require mapping all possible elements,
including plugins and more. The ModelBuilder should take care of that,
isn't it?

Cheers,
Andres

-------------------------------------------
Java Champion; Groovy Enthusiast
JCP EC Associate Seat
http://andresalmiray.com
http://www.linkedin.com/in/aalmiray
--
What goes up, must come down. Ask any system administrator.
There are 10 types of people in the world: Those who understand binary, and
those who don't.
To understand recursion, we must first understand recursion.


On Sat, Dec 8, 2018 at 6:58 PM Oliver Drotbohm <ogie...@pivotal.io> wrote:

> If it's about pure XML parsing and tweaking the information and building
> the model is not required, XmlBeam [0] is a lightweight alternative to map
> the entire file to a Java object. We use that in the Spring Data release
> automation. Declare an interface containing accessors backed by XPath
> expressions, use the API to create instances and read and write data from
> and to the XML file.
>
> Here [1] is the interface we use to access the parts of the POM relevant
> to our use case.
>
> Cheers,
> Ollie
>
> [0] https://xmlbeam.org/
> [1]
> https://github.com/spring-projects/spring-data-dev-tools/blob/82252be5d7c11a137a68c7fe985b53e04d91cb18/release-tools/src/main/java/org/springframework/data/release/build/Pom.java
>
> > Am 08.12.2018 um 18:47 schrieb Andres Almiray <aalmi...@gmail.com>:
> >
> > Thank you Robert!
> >
> > It looks like org.apache.maven.model.Model.DefaultModelBuilder provides
> the
> > behavior I need given this method found in its contract
> >
> >   ModelBuildingResult build( ModelBuildingRequest request )
> >        throws ModelBuildingException;
> >
> > ModelBuildingResult gives me access to the raw model (as read form the
> > pom.xml file) and the effective model. This is exactly what I need :-)
> >
> > Is there a special way to initialize an instance of such type?
> > Theoretically I'd like to call something like
> >
> >    ModelBuildingRequest request = new DefaultModelBuildingRequest();
> >    request.setPomFile(...);
> >    ModelBuilder builder = ... // instantiate builder (??)
> >    ModelBuldingResult result = builder.build(request);
> >
> > Thanks for your help.
> >
> > Best,
> > Andres
> >
> > -------------------------------------------
> > Java Champion; Groovy Enthusiast
> > JCP EC Associate Seat
> >
> https://urldefense.proofpoint.com/v2/url?u=http-3A__andresalmiray.com&d=DwIBaQ&c=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw&r=7iLfhC17FN-CWhuzo2HX1g0LRD1P0huXh9Zkd3m6MZ0&m=IxYdo3ScIXOSlnfw8tbvEDuE1wDPwLfKRtL_lYOz0zs&s=pWrsdUJpQnH-DJXIDk-VNgy7wfo1-h6nGxVaeazNdJI&e=
> >
> https://urldefense.proofpoint.com/v2/url?u=http-3A__www.linkedin.com_in_aalmiray&d=DwIBaQ&c=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw&r=7iLfhC17FN-CWhuzo2HX1g0LRD1P0huXh9Zkd3m6MZ0&m=IxYdo3ScIXOSlnfw8tbvEDuE1wDPwLfKRtL_lYOz0zs&s=UGKJpSnO9O4VH5cvMfn7ZTk5m9sFXqHsplwnlS1nbpk&e=
> > --
> > What goes up, must come down. Ask any system administrator.
> > There are 10 types of people in the world: Those who understand binary,
> and
> > those who don't.
> > To understand recursion, we must first understand recursion.
> >
> >
> > On Sat, Dec 8, 2018 at 6:33 PM Robert Scholte <rfscho...@apache.org>
> wrote:
> >
> >> The ModelBuilder[1] is what you are looking for, and yes it does a LOT
> :)
> >>
> >> Be aware that it is using CDI, so to make use of it you'll need
> >> sisu/guice
> >> too.
> >>
> >> Robert
> >>
> >> [1]
> https://urldefense.proofpoint.com/v2/url?u=https-3A__maven.apache.org_ref_3.6.0_maven-2Dmodel-2Dbuilder_&d=DwIBaQ&c=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw&r=7iLfhC17FN-CWhuzo2HX1g0LRD1P0huXh9Zkd3m6MZ0&m=IxYdo3ScIXOSlnfw8tbvEDuE1wDPwLfKRtL_lYOz0zs&s=nOkaCJH3dSvCiihbxfBQKXKE-I2GunCrdaIK9gjbVJs&e=
> >>
> >> On Sat, 08 Dec 2018 18:20:51 +0100, Andres Almiray <aalmi...@gmail.com>
> >> wrote:
> >>
> >>> Of course.
> >>>
> >>> This is definitely not a plugin project. My goal is to have an
> in-memory
> >>> representation of the POM as defined by a source pom.xml, to later
> >>> transform/enrich it and write it back.
> >>> As a side effect this tool can calculate statics on usage patterns and
> >>> recommend some others.
> >>>
> >>> Best,
> >>> Andres
> >>>
> >>> -------------------------------------------
> >>> Java Champion; Groovy Enthusiast
> >>> JCP EC Associate Seat
> >>>
> https://urldefense.proofpoint.com/v2/url?u=http-3A__andresalmiray.com&d=DwIBaQ&c=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw&r=7iLfhC17FN-CWhuzo2HX1g0LRD1P0huXh9Zkd3m6MZ0&m=IxYdo3ScIXOSlnfw8tbvEDuE1wDPwLfKRtL_lYOz0zs&s=pWrsdUJpQnH-DJXIDk-VNgy7wfo1-h6nGxVaeazNdJI&e=
> >>>
> https://urldefense.proofpoint.com/v2/url?u=http-3A__www.linkedin.com_in_aalmiray&d=DwIBaQ&c=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw&r=7iLfhC17FN-CWhuzo2HX1g0LRD1P0huXh9Zkd3m6MZ0&m=IxYdo3ScIXOSlnfw8tbvEDuE1wDPwLfKRtL_lYOz0zs&s=UGKJpSnO9O4VH5cvMfn7ZTk5m9sFXqHsplwnlS1nbpk&e=
> >>> --
> >>> What goes up, must come down. Ask any system administrator.
> >>> There are 10 types of people in the world: Those who understand binary,
> >>> and
> >>> those who don't.
> >>> To understand recursion, we must first understand recursion.
> >>>
> >>>
> >>> On Sat, Dec 8, 2018 at 6:17 PM Enrico Olivelli <eolive...@gmail.com>
> >>> wrote:
> >>>
> >>>> Il sab 8 dic 2018, 18:09 Andres Almiray <aalmi...@gmail.com> ha
> >> scritto:
> >>>>
> >>>>> Hello everyone,
> >>>>>
> >>>>> I have the need of building a model based on the data defined in a
> >>>> pom.xml
> >>>>> file.
> >>>>> What would be the best way to read, parse, and obtain such model
> using
> >>>>> standard Maven APIs?
> >>>>>
> >>>>
> >>>> Could you given some more context?
> >>>>
> >>>> I guess you are not writing a plugin.
> >>>>
> >>>> Using the internal API may be useful depending on your case.
> >>>>
> >>>> Enrico
> >>>>
> >>>>>
> >>>>> Best,
> >>>>> Andres
> >>>>>
> >>>>> -------------------------------------------
> >>>>> Java Champion; Groovy Enthusiast
> >>>>> JCP EC Associate Seat
> >>>>>
> https://urldefense.proofpoint.com/v2/url?u=http-3A__andresalmiray.com&d=DwIBaQ&c=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw&r=7iLfhC17FN-CWhuzo2HX1g0LRD1P0huXh9Zkd3m6MZ0&m=IxYdo3ScIXOSlnfw8tbvEDuE1wDPwLfKRtL_lYOz0zs&s=pWrsdUJpQnH-DJXIDk-VNgy7wfo1-h6nGxVaeazNdJI&e=
> >>>>>
> https://urldefense.proofpoint.com/v2/url?u=http-3A__www.linkedin.com_in_aalmiray&d=DwIBaQ&c=lnl9vOaLMzsy2niBC8-h_K-7QJuNJEsFrzdndhuJ3Sw&r=7iLfhC17FN-CWhuzo2HX1g0LRD1P0huXh9Zkd3m6MZ0&m=IxYdo3ScIXOSlnfw8tbvEDuE1wDPwLfKRtL_lYOz0zs&s=UGKJpSnO9O4VH5cvMfn7ZTk5m9sFXqHsplwnlS1nbpk&e=
> >>>>> --
> >>>>> What goes up, must come down. Ask any system administrator.
> >>>>> There are 10 types of people in the world: Those who understand
> >>>> binary,
> >>>> and
> >>>>> those who don't.
> >>>>> To understand recursion, we must first understand recursion.
> >>>>>
> >>>> --
> >>>>
> >>>>
> >>>> -- Enrico Olivelli
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> >> For additional commands, e-mail: dev-h...@maven.apache.org
> >>
> >>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org
> For additional commands, e-mail: dev-h...@maven.apache.org
>
>

Reply via email to