diff --git a/src/main/java/io/cryostat/agent/Agent.java b/src/main/java/io/cryostat/agent/Agent.java index 9bf55b34..51a746fe 100644 --- a/src/main/java/io/cryostat/agent/Agent.java +++ b/src/main/java/io/cryostat/agent/Agent.java @@ -50,7 +50,7 @@ import sun.misc.Signal; import sun.misc.SignalHandler; -public class Agent implements Consumer { +public class Agent implements Consumer { private static Logger log = LoggerFactory.getLogger(Agent.class); private static final AtomicBoolean needsCleanup = new AtomicBoolean(true); @@ -90,10 +90,13 @@ public static void premain(String args) { // dynamic attach entry point, Agent is starting after being loaded and attached to a running // JVM application + // FIXME the 'args' here should be parsed by AgentArgs. Currently it is just assumed that it is + // the positional SmartTriggers syntax argument since that is the only thing it (optionally) + // may be. public static void agentmain(String args) { log.trace("agentmain"); - Agent agent = new Agent(); - Thread t = new Thread(() -> agent.accept(args)); + AgentArgs aa = new AgentArgs(String.valueOf(ProcessHandle.current().pid()), args); + Thread t = new Thread(() -> new Agent().accept(aa)); t.setDaemon(true); t.setName("cryostat-agent-main"); t.start(); @@ -138,7 +141,7 @@ static URI selfJarLocation() throws URISyntaxException { } @Override - public void accept(String smartTriggers) { + public void accept(AgentArgs args) { log.info("Cryostat Agent starting..."); AgentExitHandler agentExitHandler = null; try { @@ -187,7 +190,7 @@ public void accept(String smartTriggers) { }); webServer.start(); registration.start(); - client.triggerEvaluator().start(smartTriggers); + client.triggerEvaluator().start(args.getSmartTriggers()); log.info("Startup complete"); } catch (Exception e) { log.error(Agent.class.getSimpleName() + " startup failure", e);