in dsl/camel-cli-connector/src/main/java/org/apache/camel/cli/connector/LocalCliConnector.java [861:1076]
protected void statusTask() {
try {
// even during termination then collect status as we want to see status changes during stopping
JsonObject root = new JsonObject();
// what runtime are in use
JsonObject rc = new JsonObject();
String dir = new File(".").getAbsolutePath();
dir = FileUtil.onlyPath(dir);
rc.put("pid", ProcessHandle.current().pid());
rc.put("directory", dir);
ProcessHandle.current().info().user().ifPresent(u -> rc.put("user", u));
rc.put("platform", platform);
if (platformVersion != null) {
rc.put("platformVersion", platformVersion);
}
if (mainClass != null) {
rc.put("mainClass", mainClass);
}
RuntimeMXBean mb = ManagementFactory.getRuntimeMXBean();
if (mb != null) {
rc.put("javaVersion", mb.getVmVersion());
}
root.put("runtime", rc);
DevConsoleRegistry dcr = camelContext.getCamelContextExtension().getContextPlugin(DevConsoleRegistry.class);
if (dcr != null) {
// collect details via console
DevConsole dc = dcr.resolveById("context");
DevConsole dc2 = dcr.resolveById("route");
if (dc != null && dc2 != null) {
JsonObject json = (JsonObject) dc.call(DevConsole.MediaType.JSON);
JsonObject json2 = (JsonObject) dc2.call(DevConsole.MediaType.JSON, Map.of("processors", "true"));
if (json != null && json2 != null) {
root.put("context", json);
root.put("routes", json2.get("routes"));
}
}
DevConsole dc3 = dcr.resolveById("endpoint");
if (dc3 != null) {
JsonObject json = (JsonObject) dc3.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("endpoints", json);
}
}
DevConsole dc4 = dcr.resolveById("health");
if (dc4 != null) {
// include full details in health checks
JsonObject json = (JsonObject) dc4.call(DevConsole.MediaType.JSON, Map.of("exposureLevel", "full"));
if (json != null && !json.isEmpty()) {
root.put("healthChecks", json);
}
}
DevConsole dc5 = dcr.resolveById("event");
if (dc5 != null) {
JsonObject json = (JsonObject) dc5.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("events", json);
}
}
DevConsole dc6 = dcr.resolveById("log");
if (dc6 != null) {
JsonObject json = (JsonObject) dc6.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("logger", json);
}
}
DevConsole dc7 = dcr.resolveById("inflight");
if (dc7 != null) {
JsonObject json = (JsonObject) dc7.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("inflight", json);
}
}
DevConsole dc8 = dcr.resolveById("blocked");
if (dc8 != null) {
JsonObject json = (JsonObject) dc8.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("blocked", json);
}
}
DevConsole dc9 = dcr.resolveById("micrometer");
if (dc9 != null) {
JsonObject json = (JsonObject) dc9.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("micrometer", json);
}
}
DevConsole dc10 = dcr.resolveById("resilience4j");
if (dc10 != null) {
JsonObject json = (JsonObject) dc10.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("resilience4j", json);
}
}
DevConsole dc11 = dcr.resolveById("fault-tolerance");
if (dc11 != null) {
JsonObject json = (JsonObject) dc11.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("fault-tolerance", json);
}
}
DevConsole dc12 = dcr.resolveById("circuit-breaker");
if (dc12 != null) {
JsonObject json = (JsonObject) dc12.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("circuit-breaker", json);
}
}
DevConsole dc13 = dcr.resolveById("trace");
if (dc13 != null) {
JsonObject json = (JsonObject) dc13.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("trace", json);
}
}
DevConsole dc14 = dcr.resolveById("consumer");
if (dc14 != null) {
JsonObject json = (JsonObject) dc14.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("consumers", json);
}
}
DevConsole dc15 = dcr.resolveById("variables");
if (dc15 != null) {
JsonObject json = (JsonObject) dc15.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("variables", json);
}
}
DevConsole dc16 = dcr.resolveById("transformers");
if (dc16 != null) {
JsonObject json = (JsonObject) dc16.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("transformers", json);
}
}
DevConsole dc17 = dcr.resolveById("service");
if (dc17 != null) {
JsonObject json = (JsonObject) dc17.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("services", json);
}
}
DevConsole dc18 = dcr.resolveById("platform-http");
if (dc18 != null) {
JsonObject json = (JsonObject) dc18.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("platform-http", json);
}
}
DevConsole dc19 = dcr.resolveById("rest");
if (dc19 != null) {
JsonObject json = (JsonObject) dc19.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("rests", json);
}
}
DevConsole dc20 = dcr.resolveById("kafka");
if (dc20 != null) {
JsonObject json = (JsonObject) dc20.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("kafka", json);
}
}
DevConsole dc21 = dcr.resolveById("properties");
if (dc21 != null) {
JsonObject json = (JsonObject) dc21.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("properties", json);
}
}
DevConsole dc22 = dcr.resolveById("main-configuration");
if (dc22 != null) {
JsonObject json = (JsonObject) dc22.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("main-configuration", json);
}
}
DevConsole dc23 = dcr.resolveById("receive");
if (dc23 != null) {
JsonObject json = (JsonObject) dc23.call(DevConsole.MediaType.JSON);
if (json != null && !json.isEmpty()) {
root.put("receive", json);
}
}
}
// various details
JsonObject mem = collectMemory();
if (mem != null) {
root.put("memory", mem);
}
JsonObject cl = collectClassLoading();
if (cl != null) {
root.put("classLoading", cl);
}
JsonObject threads = collectThreads();
if (threads != null) {
root.put("threads", threads);
}
JsonObject gc = collectGC();
if (gc != null) {
root.put("gc", gc);
}
JsonObject vaults = collectVaults();
if (!vaults.isEmpty()) {
root.put("vaults", vaults);
}
LOG.trace("Updating status file: {}", statusFile);
IOHelper.writeText(root.toJson(), statusFile);
} catch (Exception e) {
// ignore
LOG.trace("Error updating status file: {} due to: {}. This exception is ignored.",
statusFile, e.getMessage(), e);
}
}