aboutsummaryrefslogtreecommitdiff
path: root/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/Agent.java
diff options
context:
space:
mode:
Diffstat (limited to 'org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/Agent.java')
-rw-r--r--org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/Agent.java18
1 files changed, 15 insertions, 3 deletions
diff --git a/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/Agent.java b/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/Agent.java
index f726e0ca..68ac3c63 100644
--- a/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/Agent.java
+++ b/org.jacoco.agent.rt/src/org/jacoco/agent/rt/internal/Agent.java
@@ -13,13 +13,16 @@ package org.jacoco.agent.rt.internal;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
+import java.lang.management.ManagementFactory;
import java.net.InetAddress;
import java.net.UnknownHostException;
+import javax.management.ObjectName;
+import javax.management.StandardMBean;
+
import org.jacoco.agent.rt.IAgent;
import org.jacoco.agent.rt.internal.controller.IAgentController;
import org.jacoco.agent.rt.internal.controller.LocalController;
-import org.jacoco.agent.rt.internal.controller.MBeanController;
import org.jacoco.agent.rt.internal.controller.TcpClientController;
import org.jacoco.agent.rt.internal.controller.TcpServerController;
import org.jacoco.core.JaCoCo;
@@ -34,6 +37,8 @@ import org.jacoco.core.runtime.RuntimeData;
*/
public class Agent implements IAgent {
+ private static final String JMX_NAME = "org.jacoco:type=Runtime";
+
private static Agent singleton;
/**
@@ -118,6 +123,11 @@ public class Agent implements IAgent {
data.setSessionId(sessionId);
controller = createAgentController();
controller.startup(options, data);
+ if (options.getJmx()) {
+ ManagementFactory.getPlatformMBeanServer().registerMBean(
+ new StandardMBean(this, IAgent.class),
+ new ObjectName(JMX_NAME));
+ }
} catch (final Exception e) {
logger.logExeption(e);
}
@@ -132,6 +142,10 @@ public class Agent implements IAgent {
controller.writeExecutionData(false);
}
controller.shutdown();
+ if (options.getJmx()) {
+ ManagementFactory.getPlatformMBeanServer().unregisterMBean(
+ new ObjectName(JMX_NAME));
+ }
} catch (final Exception e) {
logger.logExeption(e);
}
@@ -151,8 +165,6 @@ public class Agent implements IAgent {
return new TcpServerController(logger);
case tcpclient:
return new TcpClientController(logger);
- case mbean:
- return new MBeanController();
default:
throw new AssertionError(controllerType);
}