irb(#<Maven::Polyglot::Parser:0x62c6db99>):002:0> ctx.session.container
=> #<Java::OrgCodehausPlexus::DefaultPlexusContainer:0x3efe7086>

Well, would you look at that! Literal hours of staring at the javadoc over
multiple days and yet somehow I missed that. Though to be fair I did type
.context and search the javadoc and code for "context" before I realized
you said "container". Though it is deprecated? Good enough for me though.
Thanks!

Thanks,
Patrick

On Tue, Nov 22, 2022 at 10:33 AM Romain Manni-Bucau <[email protected]>
wrote:

> *ctx.session.container* ?
>
>
> Le mar. 22 nov. 2022 à 16:23, Patrick Plenefisch <[email protected]> a
> écrit :
>
> > No, how would I do that with the released version of Mojo today? I know
> the
> > standard version of injecting for java uses a field and an annotation,
> but
> > I'm not writing java, and I don't know how to adapt that to my polyglot
> > pom-inline code:
> > https://github.com/jruby/jruby/blob/master/lib/pom.rb#L209
> >
> > Patrick
> >
> > On Tue, Nov 22, 2022 at 10:13 AM Romain Manni-Bucau <
> [email protected]
> > >
> > wrote:
> >
> > > Hi Patrick,
> > >
> > > Did you try injecting PlexusContainer?
> > > It is not the most sexy and modern way to do it but it fits quite well
> > the
> > > scripting language since the container enables to lookup anything, it
> is
> > > just a matter of injecting it in the mojo then forwarding it to the
> > script.
> > >
> > > Side note: I assume a more modern solution is to inject the sisu
> > > BeanLocator but its package is not exposed to mojo (intentionally) so
> it
> > > can be trickier to play with ClassRealms to get it.
> > >
> > > I would also avoid the generation trick since it will also have
> pitfalls
> > > (leaks, manual registration, cache) and is not simpler.
> > >
> > > Hope it helps a bit.
> > >
> > > Romain Manni-Bucau
> > > @rmannibucau <https://twitter.com/rmannibucau> |  Blog
> > > <https://rmannibucau.metawerx.net/> | Old Blog
> > > <http://rmannibucau.wordpress.com> | Github <
> > > https://github.com/rmannibucau> |
> > > LinkedIn <https://www.linkedin.com/in/rmannibucau> | Book
> > > <
> > >
> >
> https://www.packtpub.com/application-development/java-ee-8-high-performance
> > > >
> > >
> > >
> > > Le mar. 22 nov. 2022 à 16:04, Patrick Plenefisch <[email protected]>
> a
> > > écrit :
> > >
> > > > Hi,
> > > > How can I query a specific dependency's *resolved* transitive
> > > dependencies
> > > > inside a class executed by a mojo? I have access to session and
> > project,
> > > > and that's it.
> > > > I looked at DependencyGraphBuilder and the underlying
> > > > ProjectDependenciesResolver, but those seem to be injected. While I
> can
> > > > generate a class at runtime, I don't see how to access the injector
> > even
> > > if
> > > > I have a class
> > > >
> > > > The environment I'm running inside is JRuby inside
> > > >
> > > >
> > >
> >
> https://github.com/takari/polyglot-maven/blob/master/polyglot-maven-plugin/src/main/java/org/sonatype/maven/polyglot/plugin/ExecuteMojo.java
> > > > which is why I can't just use an @Inject annotation. But, being
> JRuby,
> > I
> > > > can easily generate classes at runtime if necessary.
> > > >
> > > > How can I go about this?
> > > >
> > > > Thanks,
> > > >
> > > > Patrick
> > > >
> > >
> >
>

Reply via email to