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