<div dir="ltr"><div><div>You can call org.jboss.as.server.CurrentServiceContainer#getServiceContainer() to do this, however it is trickey from a JavaAgent (as the module will not be available from the agent&#39;s class loader). <br><br></div>Unfortunately there is no getting around this, as none of the API classes you need will be available in the module. As I see it you have a few different options:<br><br></div><div>1) Use reflection to get hold of this class, and then use reflection to make the calls<br></div><div>2) Create a class that does this directly, and then make sure it is loaded from the server module (which has access to the classes you need).<br><br></div><div>There may be some other options, but that is all I can think of of the top of my head.<br><br></div><div>If you want more info on how to implement either of these approaches feel free to ask me on hipchat.<br></div><div><br></div>Stuart<br></div><div class="gmail_extra"><br><div class="gmail_quote">On Sat, Mar 11, 2017 at 5:43 PM, John Mazzitelli <span dir="ltr">&lt;<a href="mailto:mazz@redhat.com" target="_blank">mazz@redhat.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">OK, here&#39;s another one where I need some secret magical sauce - hoping someone knows of a technique I can use.<br>
<br>
Suppose I have a javaagent installed in a WildFly server (using the standard -javaagent VM argument).<br>
<br>
The javaagent would like to talk to the WildFly Server it is co-located with. Since it is in the same VM, the javaagent wants to avoid it looking like a remote call.<br>
<br>
But I know of no way to obtain a local ModelController instance to build a client short of injecting some service or subsystem into WildFly itself (something I would like to avoid).<br>
<br>
If the javaagent were instead a subsystem extension, it could do something like this:<br>
<br>
   InjectedValue&lt;ModelController&gt; mcValue = new InjectedValue&lt;&gt;();<br>
   ...<br>
   ((ServiceBuilder) bldr).addDependency(Services.<wbr>JBOSS_SERVER_CONTROLLER, ModelController.class, mcValue);<br>
   ...<br>
   WHAT_I_WANT = mcValue.getValue().<wbr>createClient(...)<br>
<br>
But obviously, that&#39;s no good for something running outside of the WildFly container (albeit in the same JVM).<br>
<br>
Any hope at all? I was thinking some trickery on the order of what ByteMan does in order to figure out a way to obtain a local ModelController? But that&#39;s a last ditch effort :) Hoping there is something that uses a little less witchcraft.<br>
______________________________<wbr>_________________<br>
wildfly-dev mailing list<br>
<a href="mailto:wildfly-dev@lists.jboss.org">wildfly-dev@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/wildfly-dev" rel="noreferrer" target="_blank">https://lists.jboss.org/<wbr>mailman/listinfo/wildfly-dev</a><br>
</blockquote></div><br></div>