On Sat, 08 Dec 2018 21:52:16 +0100, Andres Almiray <[email protected]> wrote:

So far so good, I can parse POM files and read data. This works fine as
long as I don't have to access a parent POM.

@Robert: I suspect your first suggestion may be needed in order to resolve
parent POM files as artifacts, isn't that right?

I don't know. I can always assume there's a CDI container, so that code looks quite simple. I never have to use the DefaultModelBuilderFactory, I actually wasn't aware of this class.
I'm not sure everything works for standalone, but docs suggest it should.
If not, we'll need to have a closer look at it.

Robert


Best,
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 7:22 PM Robert Scholte <[email protected]> wrote:

Ah, you might be lucky with this solution :)

On Sat, 08 Dec 2018 19:20:59 +0100, Andres Almiray <[email protected]>
wrote:

> Looks like I found the answer to instantiating the ModelBuilder
>
>     new DefaultModelBuilderFactory().newInstance()
>
> From the javadoc:
>
>  * A factory to create model builder instances when no dependency
> injection
> is available. <em>Note:</em> This class is
> * only meant as a utility for developers that want to employ the model
> builder outside of the Maven build system, Maven
> * plugins should always acquire model builder instances via dependency
> injection. Developers might want to subclass
>  * this factory to provide custom implementations for some of the
> components used by the model builder.
>
> Great, I think this will work :-)
>
> Best,
> 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:47 PM Andres Almiray <[email protected]>
wrote:
>
>> 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
>> 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:33 PM Robert Scholte <[email protected]>
>> 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://maven.apache.org/ref/3.6.0/maven-model-builder/
>>>
>>> On Sat, 08 Dec 2018 18:20:51 +0100, Andres Almiray <[email protected]
>
>>> 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
>>> > 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:17 PM Enrico Olivelli <[email protected]>
>>> > wrote:
>>> >
>>> >> Il sab 8 dic 2018, 18:09 Andres Almiray <[email protected]> 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
>>> >> > 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.
>>> >> >
>>> >> --
>>> >>
>>> >>
>>> >> -- Enrico Olivelli
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: [email protected]
>>> For additional commands, e-mail: [email protected]
>>>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to