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 > >